![]() |
Wie funktioniert Getmessage
Hi Leute,
ich weiss, dass dieses Thema schon des öfteren angesprochen wurde. Aber leider verstehe ich Beispiele in diesem Forum nicht. In meinem Programm markiere ich zwei Dateien und öffne sie über das Kontexmenü. Es handelt sich dabei um zwei *.Tif - Dateien. Diese beiden Tif - Dateien möchte ich nun nebeneinander angezeigt bekommen. Das Programm wird normalerweise bei zwei markierten Dateien zweimal ausgeführt. Daher habe ich
Delphi-Quellcode:
diese Abfrage hinzugefügt.
initialization
hnd := CreateMutex(nil, True, 'Project1.exe'); if GetLastError = ERROR_ALREADY_EXISTS then Halt; finalization if hnd <> 0 then CloseHandle(hnd); end. Das Programm wird nur einmal gestartet und die erste Tif - Datei auch angezeigt. Da ich aber die Zweite Tif - Datei nun auch auf meiner Form neben der ersten anzeigen möchte, muß ich mir wohl den Parameter (Pfad) von der zweiten Instanz holen, richtig? Genau da hapert es. Wie bekomme ich den Parameter aus der zweiten Instanz in die erste Instanz? |
Re: Wie funktioniert Getmessage
du müsst mit der bereits vorhanden Instanz kommunizieren bevor du die zweite abschießt. Üblicherweise holt man sich das Handle der bereits laufenden Anwendung und übermittelt dann die Daten mittels wm_copydata oder mit memorymapped files
|
Re: Wie funktioniert Getmessage
das Handel der Laufenden (ersten Instanz) habe ich doch.
das ist doch hnd der CreateMutex aus obigem Quelltext, oder? |
Re: Wie funktioniert Getmessage
nein! CreateMutex liefert dir das Mutex-Handle mit dem du anschließend per ReleaseMutex oder ähnlich den Mutext auch wieder freigeben kannst (vermutlich hast du den teil weggelassen da bei beenden des Programmes das automatisch freigegeben wird)
|
Re: Wie funktioniert Getmessage
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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