http://img204.imageshack.us/img204/7...titled16bm.png
... ist eine Fehlermeldung vom Cinema Craft Encoder (CCE).
Ich hab für diesen Encoder ein Delphi-Tool geschrieben
AutoQ3.
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:
{=== 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)
Das sogenannte ECL-File wird mit einer anderen Function erstellt.
Laut einem Forenbeitrag ...
Zitat:
Hallo,
ich hab mir gestern die Vollversion von CCE Basic gekauft, nun will das Ding einfach nicht mit
dvd2dvd-r 1.45 oder1.46 starten. Es geht ein Fenster mit folgender Meldung auf(WindowsXP):
_tfopen() failed : 2, klicke ich das Fenster weiter , kommt ein neues Fenster mit:
C:\Dokumente und Einstellungen\Benutzername\Desktop\1_26.03.2003_16 .07,
die mit dv2dvd-r erzeugte ecl liegt aber auf :H:\DVD COPY 1_26.03.2003_16.07
Ich wäre sehr dankbar für schnelle Hilfe.
Danke und Gruß
Morrison
Zitat:
Hi
Das Problem ist die Bezeichnung Deiner Festplatte 'DVD Copy 1'. Durch einen kleinen Umstand darf zur Zeit kein Leerzeichen in der Bezeichnung des Quelllaufwerks bzw. im Label der DVD sein. In 1.4.7 ist dieses behoben. Ändere die Bezeichnung Deiner HD in 'DVD_Copy_1' und es wird gehen.
... hat das Ganze mit dem Dateinamen zu tun.
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?