![]() |
Parameter bei Shellexecute übergeben
Hi,
mein Programm besteht quasi aus 2 Unterprogrammen. (ein Netzwerk- Chat. Die gibts zwar wie Sand am Meer, aber ich wollt mal wieder was machen) Das eine Programm überprüft ein Verzeichnis, ob neue Requests da sind (Dateien, in denen Clients die das eigene Programm kontaktieren wollen z.B. ihre IP und ihren Port reinschreiben). Wenn ein neuer Request da is, soll die zweite Exe gestartet werden. Diese kann man in mehreren Instanzen starten, soll quasi in etwa so laufen wie son ICQ- Messagewindow. Da ich ja wenn ich mehrere Instanzen habe nich einfach der Exe ne Datei vorlegen kann wo alles drinsteht (die kann man ja nicht unterscheiden), will ich die nötigen Daten wie Port und IP per Paramstring übergeben. Die Exe starten kann ich ja mit ShellExecute. Jetz meine Frage: Wie muss ich den PChar (den ich Shellexecute übergeben muss - wo der auszuführende Dateiname drinsteht) verändern, damit das Programm den Paramstring auch erkennt? Einfach so: 'meinprog.exe -parameter' oder wie? Wenn ich mir mal diese Verknüpfungen alle mal anguck, dann mac hen die das ja irgendwie alle anders... Danke schonmal S - tefano |
Dafür ist bei ShellExecute der vierte Parameter da:
Delphi-Quellcode:
ShellExecute(Handle,'open','C:\Anwendung.exe','parameter1 parameter2','',SW_SHOW);
|
Hi,
cool, danke! Und die Parameter werden einfach durch ein Leerzeichen abgetrennt? Bis dann, S - tefano |
Zitat:
|
Ja, aber du solltest ggf. dein Programm prüfen lassen, ob ggf. ein Parameter aus mehreren Wörtern da ist!
Chris |
Dann müssen die zusammengehörenden Wörter in Anführungsstriche gesetzt werden.
|
Alle nicht Integer-Parameter sind vom Typ PChar, also ein Zeiger auf eine Zeichenfolge, dewegen sollte man statt '' besser nil übergeben, wenn man den Parameter nicht benutzt.
|
Hi,
wunderbar, danke nochmal für Eure Hilfe! Bin jetz n ganzes Stück weitergekommen. Bis dann, S - tefano |
Zitat:
|
Du verläßt dich auf den Compiler, dass er es richtig umwandelt. Fällt, glaube ich, unter das Stichwort: "Compiler Magic". Also besser gleich einen Zeiger übergeben, wenn ein zeiger erwartet wird. Und ihr brauchen wir eben einen NULL-Zeiger, wenn wir keine Zeichenkette übergeben wollen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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