Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Parameter bei Shellexecute übergeben (https://www.delphipraxis.net/1748-parameter-bei-shellexecute-uebergeben.html)

S - tefano 20. Dez 2002 21:40


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

Chewie 21. Dez 2002 11:50

Dafür ist bei ShellExecute der vierte Parameter da:
Delphi-Quellcode:
ShellExecute(Handle,'open','C:\Anwendung.exe','parameter1 parameter2','',SW_SHOW);

S - tefano 21. Dez 2002 13:33

Hi,

cool, danke!
Und die Parameter werden einfach durch ein Leerzeichen abgetrennt?

Bis dann,

S - tefano

Chewie 21. Dez 2002 13:34

Zitat:

Zitat von S - tefano
Hi,

cool, danke!
Und die Parameter werden einfach durch ein Leerzeichen abgetrennt?

Bis dann,

S - tefano

Ja.

CalganX 21. Dez 2002 13:35

Ja, aber du solltest ggf. dein Programm prüfen lassen, ob ggf. ein Parameter aus mehreren Wörtern da ist!

Chris

d3g 21. Dez 2002 13:56

Dann müssen die zusammengehörenden Wörter in Anführungsstriche gesetzt werden.

Luckie 21. Dez 2002 14:25

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.

S - tefano 21. Dez 2002 14:29

Hi,

wunderbar, danke nochmal für Eure Hilfe!
Bin jetz n ganzes Stück weitergekommen.

Bis dann,

S - tefano

Chewie 21. Dez 2002 17:13

Zitat:

Zitat von Luckie
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.

Was macht das eigentlich für einen Unterschied?

Luckie 21. Dez 2002 17:20

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.
Seite 1 von 2  1 2      

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