AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi _tfopen() failed: 2 - Liegt es an meiner Function?
Thema durchsuchen
Ansicht
Themen-Optionen

_tfopen() failed: 2 - Liegt es an meiner Function?

Ein Thema von Amnon82 · begonnen am 27. Jun 2006 · letzter Beitrag vom 29. Jun 2006
Antwort Antwort
Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#1

_tfopen() failed: 2 - Liegt es an meiner Function?

  Alt 27. Jun 2006, 19:23
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?
  Mit Zitat antworten Zitat
Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#2

Re: _tfopen() failed: 2 - Liegt es an meiner Function?

  Alt 29. Jun 2006, 22:50
Thread @ Doom9.org

Trahald
Zitat:
if the (2) code is the errno() return code.. then that means 'no such file or directory.' So its having a problem with the file name. fopen() and _tfopen (UNICODE) are reported to have problems with spaces in the file name.

whats the actual ecl filename AND pathname?

if there are no spaces are odd characters in it, then also check that your program is passing the entire pathfilename to cce
Seit meiner neusten Version hab ich die Fehler nicht mehr gesehen. War anscheinend zu schnell und die ECL-Datei war noch nicht da.
Meine Function funktioniert anscheinend
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz