![]() |
ShellExecute Laufzeitproblem
Hi,
um die beiden zeilen geht es:
Delphi-Quellcode:
erst wird die datei entpackt (TempDownloadDir+IP+'\'+Form1.ListBox3.Items[i]) und danach soll sie gelöscht werden. die entpackten dateien haben namen verschieden von der gepackten datei. aber trotzdem werden alle entpackten und die gepackte datei gelöscht.
ShellExecute(0, 'open', PChar(GetCurrentDir+'\7za.exe'), PChar('e -o"'+TempDownloadDir+IP+'" "'+TempDownloadDir+IP+'\'+Form1.ListBox3.Items[i]+'"'), nil, SW_SHOWNORMAL);
DeleteFile(TempDownloadDir+IP+'\'+Form1.ListBox3.Items[i]); da die sache przedural nacheinander abläuft müsste das ergebnis sein, das nur noch die entpackten dateien vorliegen. tun sie aber nicht. grüße steve |
Re: ShellExecute Laufzeitproblem
Hallo,
brauchst Du auch hier wieder die Hochkommas? |
Re: ShellExecute Laufzeitproblem
Wie meinst du deine Frage? An welcher Stelle Hochkommatas?
Wenn ich den Delete-Befehl weglasse werden alle Dateien ordnungsgemäß entpackt. Jetzt sollen nur die Zip-Archive gelöscht werden. Diese haben aber einen ganz anderen Namen als die entpackten Dateien. Und trotzdem werden die Zips und die entpackten Dateien gelöscht. Habe ich da ein Laufzeit Problem? Kann ja sein, das das Shellexecute ausgeführt wird, aber garnicht auf dessen "ende gewartet" und gleich der nächste Befehl ausgeführt wird. |
Re: ShellExecute Laufzeitproblem
ShellExecute wartet nicht, bis die Anwendung beendet wurde.
Schau dir das mal an -> ![]() Oder -> ![]() |
Re: ShellExecute Laufzeitproblem
Die funktionen laufen bei mir nicht.
Hab die ExecusionInfo angepasst aber trotzdem kommt in der zeile
Delphi-Quellcode:
dieser Fehler
If ShellExecuteEx(@ExecuteInfo) and (ExecuteInfo.hInstApp> 32) then
Delphi-Quellcode:
Die Variable Wnd sollte auch in hWnd umgeschrieben werden, sonst gibs auch nen Fehler.
Unit1.pas(412,6) Error: Can't determine which overloaded function to call
Kann mir da jmd weiterhelfen? Ansonsten muss ich das Prob iwie anders lösen. ---Edit--- werd mich gleich mal mit dem 2ten Link beschäftigen. danke |
Re: ShellExecute Laufzeitproblem
Hallo,
Zitat:
Delphi-Quellcode:
DeleteFile ist vom Type Boolean, frag' mal den Rückgabewert davon ab, eventuell ist ja garnicht das Löschen das Problem, sondern irgend was anderes?
DeleteFile('"' + TempDownloadDir+IP+'\'+Form1.ListBox3.Items[i] + '"');
|
Re: ShellExecute Laufzeitproblem
Zitat:
|
Re: ShellExecute Laufzeitproblem
Naphets,
daran liegt es leider nicht. schön wärs. liegt daran das ShellExecute nicht wartet. Da versucht man ein Prob zu lösen und hat damit nen noch schwereres ausgelöst... @nuclearping: das Prinzip ist klar :) Aber die Lösung nicht. |
Re: ShellExecute Laufzeitproblem
Delphi-Quellcode:
Fehlermedlung bei
function ShellExecute_AndWait(Operation, FileName, Parameter, Directory: string;
Show: Word; bWait: Boolean): Longint; var bOK: Boolean; Info: TShellExecuteInfo; begin FillChar(Info, SizeOf(Info), Chr(0)); Info.cbSize := SizeOf(Info); Info.fMask := SEE_MASK_NOCLOSEPROCESS; Info.lpVerb := PChar(Operation); Info.lpFile := PChar(FileName); Info.lpParameters := PChar(Parameter); Info.lpDirectory := PChar(Directory); Info.nShow := Show; bOK := Boolean(ShellExecuteEx(@Info)); if bOK then begin if bWait then begin while WaitForSingleObject(Info.hProcess, 100) = WAIT_TIMEOUT do Application.ProcessMessages; bOK := GetExitCodeProcess(Info.hProcess, DWORD(Result)); end else Result := 0; end; if not bOK then Result := -1; end;
Delphi-Quellcode:
--> "Unit1.pas(411,18) Error: Can't determine which overloaded function to call"
bOK := Boolean(ShellExecuteEx(@Info));
Was heißt denn das? Vll liegt es an der Syntax, ob die ein wenig unterschiedlich ist bei Lazarus und Delphi? Speziell das "@"? |
Re: ShellExecute Laufzeitproblem
welche Parameter erwartet die Funktion denn bei dir? Entspechend solltest du den gewünschten Parameter-Typ übergeben :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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