![]() |
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:
Effekt : nichts nur folgende Fehlermeldung im Distributionsereignis :
ShellExecute(Application.Handle, 'open' ,PChar('InoDist /cfg InoDist.ini'), nil, PChar('C:\Programme\CA\Common\ScanEngine'), sw_ShowNormal);
"Die Konfigurationsdatei wird von einem anderen Prozess verwendet." die 2. Variante sieht folgendermaßen aus :
Code:
Effekt ist hier das die gleiche Meldung wie beim starten ohne Parameter angezeigt wird und nichts passiert
WinExec('C:\Programme\CA\Common\ScanEngine\InoDist /cfg InoDist.ini', SW_ShowNormal);
vielleicht könnt ihr mir ja helfen thx mfG TeeKay |
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 |
Re: Programm mit Parameternn starten
z.B.
Code:
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 ;)
ShellExecute(Application.Handle, 'open', PChar('InoDist'), [color=red]PChar('/cfg InoDist.ini')[/color], PChar('C:\Programme\CA\Common\ScanEngine'), sw_ShowNormal);
Delphi-Quellcode:
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.
ShellExecute(Application.Handle, 'open', 'InoDist', '/cfg InoDist.ini', 'C:\Programme\CA\Common\ScanEngine', sw_ShowNormal);
Delphi-Quellcode:
Da verzeichnis kann z.B. aus 'ner INI, oder der Registry ausgelesen werden.
ShellExecute(Application.Handle, 'open', 'InoDist', '/cfg InoDist.ini', PChar(Verzeichnis), sw_ShowNormal);
|
Re: Programm mit Parametern starten
... genau so sieht aus
Code:
demnächst werd ich mir die Parameter von ShellExecute genauer anschauen
ShellExecute(Application.Handle, 'open' ,PChar('InoDist.exe'), PChar('/cfg InoDist.ini'), PChar('C:\Programme\CA\Common\ScanEngine'), sw_ShowNormal);
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:21 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