![]() |
_tfopen() failed: 2 - Liegt es an meiner Function?
![]() ... ist eine Fehlermeldung vom Cinema Craft Encoder (CCE). Ich hab für diesen Encoder ein Delphi-Tool geschrieben ![]() Mir und auch meinem Hauptbetatester ist jener Fehler mit den neueren Versionen von AutoQ3 (mehrmals) passiert. Ich starte CCE in der neusten Version (0.6.49.86) folgendermaßen:
Delphi-Quellcode:
Das sogenannte ECL-File wird mit einer anderen Function erstellt.
{=== RunAndWaitShell (Enhanced AutoQ Version) ======================
This is an extended Version of Shellexecute. It will wait until the process is done. (C) 2006 AMSOFT - by Amnon82 {===================================================================} procedure RunAndWaitShell(Executable, Parameter: STRING; ShowParameter: INTEGER; WaitParameter:Integer; D2VCreatedParameter:Integer; WaitForECL:Integer); var Info: TShellExecuteInfo; pInfo: PShellExecuteInfo; exitCode: DWord; begin pInfo := @Info; with Info do begin cbSize := SizeOf(Info); fMask := SEE_MASK_NOCLOSEPROCESS; wnd := application.Handle; lpVerb := NIL; lpFile := PChar(Executable); lpParameters := PChar(Parameter + #0); lpDirectory := NIL; nShow := ShowParameter; hInstApp := 0; end; if WaitforECL=1 then repeat nil; if AQ3MAINFORM.DisplayWaitforECLMessages1.Checked=true then begin AQ3MAINFORM.M_log.SelStart := Length(AQ3MAINFORM.M_log.Text); AQ3MAINFORM.M_log.SelLength := 0; TextAusgabe(AQ3MAINFORM.M_log, TimeToStr(time)+' - '+DateToStr(Date)+' >> ' +#3+'Debug message: NIL-Run (wait for ECL)'+#3 + sLineBreak); TextAusgabe(AQ3MAINFORM.M_log, TimeToStr(time)+' - '+DateToStr(Date)+' >> ' +#3+'ECL file: '+S_ECLFILE+#3 + sLineBreak); end; Application.ProcessMessages; until V_ECLCREATED=1; if WaitforECL=1 then begin if (V_ECLCREATED=1) and (fileexists(S_ECLFILE)) and (IsFileInUse(S_ECLFILE)=false) then begin if AQ3MAINFORM.DisplayWaitforECLMessages1.Checked=true then begin AQ3MAINFORM.M_log.SelStart := Length(AQ3MAINFORM.M_log.Text); AQ3MAINFORM.M_log.SelLength := 0; TextAusgabe(AQ3MAINFORM.M_log, TimeToStr(time)+' - '+DateToStr(Date)+' >> ' +#3+'Debug message: CCE executed'+#3 + sLineBreak); end; ShellExecuteEx(pInfo); end; end else Begin ShellExecuteEx(pInfo); end; s_exe:=extractfilename(executable); AQ3MAINFORM.prioritytimer.enabled:=true; if D2VcreatedParameter=1 then repeat exitCode := WaitForSingleObject(Info.hProcess, WaitParameter); Application.ProcessMessages; until ((exitCode <> WAIT_TIMEOUT ) or (CreatedD2v() = true)) else repeat exitCode := WaitForSingleObject(Info.hProcess, WaitParameter); Application.ProcessMessages; until (exitCode <> WAIT_TIMEOUT); end; {===================================================================} RunAndWaitShell(pchar(s_cce_path), ' -ecl "'+path+'temp\AQ3PREDICTION.ecl" -encode -exit -hideshutdown',value,1000,0,1) Laut einem Forenbeitrag ... Zitat:
Zitat:
Ist bei mir aber nicht der Fall ("'+path+'temp\AQ3PREDICTION.ecl"). Dann hab ichs auch mit Pfaden, in denen Leerzeichen enthalten waren, probiert, was aber auch keinen Fehler ausgelöst hatte. Nun kam mir der Gedanke, es könnte ja sein, das CCE keinen Lese/Schreibzugriff auf die ECL-Datei hat. Ich hoffe ich hab das Problem mit der veränderten RunAndWait-Function behoben. btw. wie findet Ihr die Function? Kann man diese noch verbessern? |
Re: _tfopen() failed: 2 - Liegt es an meiner Function?
![]() Trahald Zitat:
Meine Function funktioniert anscheinend :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz