![]() |
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Zitat:
|
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Ich benutze für dieses Problem auch WM_COPYDATA.
Situation - Programm "A" ist gestartet -- in der DPR-Datei wird geprüft, ob es schon eine aktive Instanz gibt. Hier nein, also Programm ausführen - erneut Doppelklick auf Programm "A" ruft Programm "A" erneut auf. -- in der DPR-Datei wird wieder auf eine aktive Instanz geprüft. Hier gibt es nun eine, also sende Daten mit WM_COPYDATA und führe die zweite Instanz von "A" nicht weiter => also beenden. - die erste aktive Instanz von "A" wertet nun die von der zweiten Instanz "A" übergebenen Daten aus. |
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Hier im Forum gibt es schon genug Beispiele für dieses Problem mit WM_COPYDATA. Es scheint also zu funktionieren.
|
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Hmm..
Sowas ähnliches hab ich mal gemacht, jedoch nicht um einen String zu übergeben, sondern, um die bereits laufende Applikation nach Vorne zu holen. Beim Start verwende ich
Delphi-Quellcode:
Wenn der Mutex dann bereits vorhanden ist, wird
{Register a custom windows message}
FAppMyMsg := RegisterWindowMessage(FAppProgName);
Delphi-Quellcode:
Aufgerufen.
SendMessage(HWND_BROADCAST,RegisterWindowMessage(FAppProgName),0,0);
Da die WindowsMessage nur von selben Programm gekannt wird, reagiert auch nur dieses darauf. |
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Zitat:
|
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Das habe ich noch nie hier im Forum gesehen. Muss also auch ohne gehen. :wink:
|
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Meistens gibt es das Problem nur bei evaluierten Anwendungen.
NichtAdminAnwendung zu AdminAnwendung AnwendungInUserContextA zu AnwendungInUserContextB Aber schaden kann es auch nicht. :angle: |
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
Hä? Von NormalUser zu Admin? Jetzt wird es strange. User zu User. OK. Kein Problem. Aber User zu Adim? Das sollte Windows zu verhindern wissen. Zumindest ohne Passworteingabe.
|
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
danke für die vielen Vorschläge.
Mit WM_COPYData funktioniert es an sich schonmal. Macht ihr das für den Fall in dem ihr den kompletten CmdLine der ersten nstanz übergibt oder einzelne Messages für jeden ParamStr? Ich frage deshalb weil ich mir nicht sicher bin ob es sinnvoll / unproblematisch ist mehrere SendMessages aufzurufen (den Benutzer kann ja nichts davon abhalten eine zweite Instanz mit 10'000 Dateien als Parameter aufzurufen). Bei CmdLine müsste der eigene Code die einzelnen Parameter aussortieren (Leerzeichenbehandlung, mal Anführungszeichen, mal nicht etc.) |
AW: Datei per Doppelklick dem bereits geöffneten Programm übergeben
![]() Aber leider ist Borland/Embarcadero so nett und stellt den Code zum Parsen nicht öffentlich bereit, womit du das dann selber zerlegen musst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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