Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   fremdes Programm aufrufen (https://www.delphipraxis.net/208403-fremdes-programm-aufrufen.html)

Delphi.Narium 28. Jul 2021 13:34

AW: fremdes Programm aufrufen
 
Befremdlich :-(

Bitte ergänze mal die Batchdatei:
Code:
@cd
@echo %0
@path
Programmaufruf, so wie per ShellExecute
@echo %ERRORLEVEL%
pause
Was wird beim Start der Batch von der Kommandozeile angezeigt, was beim Start über Shellexecute?
Gibt es irgendwelche Unterschiede?

himitsu 28. Jul 2021 14:00

AW: fremdes Programm aufrufen
 
Ein
Delphi-Quellcode:
cd /d "%~dp0"
zu Beginn im Script setzt das Arbeitsverzeichnis auf das Verzeichnis der Batch. (muß man dann nur noch bissl aufpassen, wenn eine Batch von einer Anderen aufgerufen wird)

z.B. bei "Ausführen als Admin" wird beim Start über den Explorer C:\Windows\System32 verwendet. (normals nimmt der Explorer das aktuell geöffnete Verzeichnis oder bei Links das, was darin abweichend angegeben wurde)



Viele Programme geben als ExitCode 0 aus, wenn alles OK war, und 1 oder mehr, bei einem Fehler.
Daher ist nach Programmaufrufen in einer Batch ein
Delphi-Quellcode:
@if errorlevel 1  pause
oft auch recht praktisch.

joacim 29. Jul 2021 07:41

AW: fremdes Programm aufrufen
 
Lösung ist gefunden :-D, nochmals vielen Dank für die vielen Tips.
Letzlich war es erforderlich vor dem Aufruf des Programms mit
chDir() in sein Arbeitsverzeichnis zu wechseln.

DeddyH 29. Jul 2021 08:10

AW: fremdes Programm aufrufen
 
Genau dafür ist der Directory-Parameter von ShellExecute da.

Sinspin 29. Jul 2021 08:11

AW: fremdes Programm aufrufen
 
Zitat:

Zitat von joacim (Beitrag 1492940)
Letzlich war es erforderlich vor dem Aufruf des Programms mit chDir() in sein Arbeitsverzeichnis zu wechseln.

Das ist malwieder der HAMMER.
Es wurde Dir die ganze Zeit gesagt dass vermutlich das Verzeichnis falsch ist, unter anderem auch von mir. (gleich am Tag deiner Fragestellung)
Du hast also 4 Tage damit verschwendet diese Information zu ignorieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.
Seite 3 von 3     123   

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