Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm mit Parametern starten (https://www.delphipraxis.net/29224-programm-mit-parametern-starten.html)

teekay 6. Sep 2004 09:30


Programm mit Parametern starten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute

ich habe ein Problemchen beim Starten einer Anwendung aus delphi heraus. Hab schon einiges durchsucht aber es wäre auch möglich das es Programmspezifisch ist.

Folgendes habe ich vor :

Es gibt für eTrust InoculateIT (v. 6) die Möglichkeit die Distribution von Hand zu starten
C:\Programme\CA\Common\ScanEngine\Inodist.exe
wenn man diese startet verlangt er Parameter

Dementsprechend habe ich über Start\ Ausführen folgendes getestet :
C:\Programme\CA\Common\ScanEngine\InoDist /cfg InoDist.ini
und es funktioniert

dies wollte ich in mein Programm integrieren 2 Möglichkeiten habe ich versucht:

Code:
ShellExecute(Application.Handle, 'open' ,PChar('InoDist /cfg InoDist.ini'), nil, PChar('C:\Programme\CA\Common\ScanEngine'), sw_ShowNormal);
Effekt : nichts nur folgende Fehlermeldung im Distributionsereignis :
"Die Konfigurationsdatei wird von einem anderen Prozess verwendet."

die 2. Variante sieht folgendermaßen aus :

Code:
WinExec('C:\Programme\CA\Common\ScanEngine\InoDist /cfg InoDist.ini', SW_ShowNormal);
Effekt ist hier das die gleiche Meldung wie beim starten ohne Parameter angezeigt wird und nichts passiert

vielleicht könnt ihr mir ja helfen

thx

mfG TeeKay

CalganX 6. Sep 2004 09:31

Re: Programm mit Parameternn starten
 
Hi,
bei ShellExecute sorgt der 3. Parameter für die Datei, die du starten wirst. Parameter für die Anwendungen müssen im 4. Parameter stehen. ;)

Chris

himitsu 6. Sep 2004 09:38

Re: Programm mit Parameternn starten
 
z.B.
Code:
ShellExecute(Application.Handle, 'open', PChar('InoDist'), [color=red]PChar('/cfg InoDist.ini')[/color], PChar('C:\Programme\CA\Common\ScanEngine'), sw_ShowNormal);
PS: bei der direkten angabe eines Strings kannst du das PChar auch weglassen, da sich in diesem Fall Delphi darum kümmert, dass PChar verwendet wird ;)
Delphi-Quellcode:
ShellExecute(Application.Handle, 'open', 'InoDist', '/cfg InoDist.ini', 'C:\Programme\CA\Common\ScanEngine', sw_ShowNormal);
Und es ist auch nicht so ratsam Pfadangaben nicht direkt im Quellcode zu speichern, denn wenn sich der Pfad mal ändert, oder das Programm auf 'nem anderen Rechner laufen soll, wo das Programm woanders gespeichert ist, dann gibt es ja Fehler, weil die Datei nicht gefunden wird.
Delphi-Quellcode:
ShellExecute(Application.Handle, 'open', 'InoDist', '/cfg InoDist.ini', PChar(Verzeichnis), sw_ShowNormal);
Da verzeichnis kann z.B. aus 'ner INI, oder der Registry ausgelesen werden.

teekay 6. Sep 2004 09:38

Re: Programm mit Parametern starten
 
... genau so sieht aus
Code:
ShellExecute(Application.Handle, 'open' ,PChar('InoDist.exe'), PChar('/cfg InoDist.ini'), PChar('C:\Programme\CA\Common\ScanEngine'), sw_ShowNormal);
demnächst werd ich mir die Parameter von ShellExecute genauer anschauen


edit: @ himitsu
Ihr seid ja mal wieder richtig schnell :thumb:
im grunde genommen ging es mir um das Prinzip (von wegen feste Verzeichnisnamen ...) es geht erstmal ums testen
Für deinen Hinweis mit den Strings bin ich sehr Dankbar


big THX @ All

mfG TeeKay


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:51 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