Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Paramater wärend der Laufzeit übergeben? (https://www.delphipraxis.net/101179-paramater-waerend-der-laufzeit-uebergeben.html)

Tommy1988 9. Okt 2007 15:05


Paramater wärend der Laufzeit übergeben?
 
Hallo, kann mir wer vielleicht sagen, wie ich einer normale exe-datei z.B. als Parameter den eigenen Dateinamen wärend der Laufzeit anhängen kann?

mkinzler 9. Okt 2007 15:06

Re: Paramater wärend der Laufzeit übergeben?
 
Den eigenen Dateinamen bekommst du automatisch als 1. Parameter ParamStr(0)

sirius 9. Okt 2007 15:06

Re: Paramater wärend der Laufzeit übergeben?
 
:?: Was willst?

Code:
D:\irgendetwas.exe meinDelphiProgramm.exe
?

SirThornberry 9. Okt 2007 15:06

Re: Paramater wärend der Laufzeit übergeben?
 
was meinst du mit anhängen?
Willst du die gleiche Exe nochmal aufrufen nur eben mit (anderen) Parametern?
Oder willst du für die laufende Instanz die Parameter ändern (was keinen Sinn machen würde)

Luckie 9. Okt 2007 15:08

Re: Paramater wärend der Laufzeit übergeben?
 
Parameter werden nur beim Start ausgewertet. Ein nachträgliches übergeben ist nicht möglich ohne die Anwendung neu zu starten.

Tommy1988 9. Okt 2007 15:17

Re: Paramater wärend der Laufzeit übergeben?
 
mhh.. ja da geht es eigentlich nur um einen kleinen test den ich machen möchte:

ich möchte dateiendungen mit einem testprogramm verknüpfen, damit ich die mit meinem programm halt aufrufen kann. aber so bringt das ja nix, weil nur das testprogramm (ein leeres form) zu sehen ist.

da dacht ich muss man doch irgentwe abfragen können, von was für einer datei ich aus geklickt habe
also ich mein, zur visuellen darstellung den dateinamen der geklickten datei vielleicht in ein label eintragen

marabu 9. Okt 2007 15:19

Re: Paramater wärend der Laufzeit übergeben?
 
Hallo,

den Namen der Datei solltest du in der Regel als ersten Parameter übergeben bekommen. Du hast die Art der Übergabe doch selbst in der Registry angegeben.

Grüße vom marabu

Dunkel 9. Okt 2007 15:22

Re: Paramater wärend der Laufzeit übergeben?
 
Zitat:

Zitat von Luckie
Parameter werden nur beim Start ausgewertet.

Richtig.
Zitat:

Zitat von Luckie
Ein nachträgliches übergeben ist nicht möglich ohne die Anwendung neu zu starten.

Eingeschränkt falsch.
Erste Instanz des Programms mit Parametern starten -> Programm läuft.
Zweite Instanz des selben Programms mit anderen Parametern starten -> die zweite Instanz "merkt" via Semaphore (oder eine ähnliche Technik) dass schon eine Instanz (und zwar die erste) des Programms läuft und sendet via Pipes (o.Ä.) eine Nachricht an diese in der die übergebenen Parameter übermittelt werden und schließt sich danach wieder.
Die erste Instanz empfängt die Pipe-Nachricht und verarbeitet die übergebenen Parameter entsprechend.

Fazit: Es ist möglich! Such mal nach Semaphore (CreateSemaphore), Pipes & MMF (Memory Mapped Files), damit mache ich ähnliches.

s-off 9. Okt 2007 15:44

Re: Paramater wärend der Laufzeit übergeben?
 
Zitat:

Zitat von Dunkel
Zweite Instanz des selben Programms mit anderen Parametern starten -> die zweite Instanz "merkt" via Semaphore (oder eine ähnliche Technik) dass schon eine Instanz (und zwar die erste) des Programms läuft und sendet via Pipes (o.Ä.) eine Nachricht an diese in der die übergebenen Parameter übermittelt werden und schließt sich danach wieder.
Die erste Instanz empfängt die Pipe-Nachricht und verarbeitet die übergebenen Parameter entsprechend.

Das machen Programme wie bspw. MS-Word doch genauso.

Tommy1988 9. Okt 2007 18:00

Re: Paramater wärend der Laufzeit übergeben?
 
Zitat:

was meinst du mit anhängen?
Naja, eigentich meine ich das hier:
Angenommen ich registriere eine eigene Dateiendung.

Dann klicke ich doppelt auf diese Date mit meiner Dateiendung, was passiert?
Das entsprechende Programm öffnet sich.
So, es sollte sich aber nicht "nur" das Programm öffnen, sondern entsprechend der Datei die ich doppelt geklickt habe, etwas ausführen. Ganz einfach als Beispiel z.b. den Dateinamen der doppelt-geklicketn Datei im Label anzeigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Seite 1 von 2  1 2      

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