![]() |
Ich liebe ShellExecute
Moin Moin.
Wenn ich zu Fuß via Console eingebe:
Code:
macht er genau das was er soll: entpacken der 7z Datei.
C:\Users\citybuilders\Eigene Projekte\Eigene Projekte Scanner\TEST>7z.exe x aaaaaa.7z
In meinem Wahn setze ich das dann um in eine ShellExecute Anweisung.
Delphi-Quellcode:
Returncode ist 42, angeblich ja alles primstens, ErrorCode ist 0, Ergebnis ist : Nichts. Das Archiv wird nicht entpackt.
begin
WorkFile := '"' + PrgPath + 'Test\7z.exe"'; Params := '" x AAAAAA.7z"'; ReturnCode := ShellExecute(0, 'open', PChar(Workfile),Pchar(Params), nil, SW_shownormal); Error := GetLastError; end; Meine Frage: Wen erschiesse ich zu erst : den Computer oder mich? creehawk |
AW: Ich liebe ShellExecute
Sind die Gänsefüßchen (") bei Params evtl. das Problem?
|
AW: Ich liebe ShellExecute
Nein, leider nicht. Ob mit oder ohne . geht nicht.
creehawk |
AW: Ich liebe ShellExecute
Was genau steht denn in PrgPath?
|
AW: Ich liebe ShellExecute
Naja, dies hier:
Code:
Hole ich zur Laufzeit über :
C:\Users\citybuilders\Eigene Projekte\Eigene Projekte Scanner\
Delphi-Quellcode:
PRGPath := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
creehawk |
AW: Ich liebe ShellExecute
Gib mal einen vollen Pfad zur AAAAAA.7z an. Evtl. sucht er die ganz woanders.
|
AW: Ich liebe ShellExecute
Delphi-Quellcode:
Und immer noch nix.
begin
WorkFile := 'C:\Users\citybuilders\Eigene Projekte\Eigene Projekte Scanner\TEST\7z.exe'; Params := 'x C:\Users\citybuilders\Eigene Projekte\Eigene Projekte Scanner\TEST\AAAAAA.zip'; ReturnCode := ShellExecute(0, 'open', PChar(Workfile),Pchar(Params), nil, SW_shownormal); Error := GetLastError; showmessage(ReturnCode.tostring); showmessage(Error.tostring); end; creehawk |
AW: Ich liebe ShellExecute
Das verb "open" halte ich für falsch bei einer .exe-Datei. Versuch doch mal NULL/nil
![]() |
AW: Ich liebe ShellExecute
Und immer noch nix. Ob Nil oder Null.
Ich habe in anderen Programmen diese Form des Aufrufs verwendet. Funktionierte anstandslos. Und die 42 als Antwort fasse ich als OK auf. Sehr rätselhaft. creehawk |
AW: Ich liebe ShellExecute
Wenn du das per Kommandozeile startest, bist du dann in dem TEST Verzeichnis? (immerhin wird die 7z-Datei ja dort ohne Pfad angegeben)
Dann wäre die Pfadangabe bei der EXE aber redundant. Bei ShellExecute ist das aktuelle Verzeichnis aber vermutlich ein anderes sein, weswegen dort die Pfade hilfreich sind. Ich habe da ja die Leerzeichen in Verdacht. Vielleicht probierst du es mal in einem Pfad ohne diese. Für den aktuellen Fall käme noch folgender Ansatz mit Quotes in Betracht:
Delphi-Quellcode:
WorkFile := '"C:\Users\citybuilders\Eigene Projekte\Eigene Projekte Scanner\TEST\7z.exe"';
Params := 'x "C:\Users\citybuilders\Eigene Projekte\Eigene Projekte Scanner\TEST\AAAAAA.zip"'; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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