![]() |
Parameter einer 2. Instanz and die Erste senden (und exit)
hi leute.
Ich habe folgendes Problem: Beim Doppelklick auf eine Datei wird sie miot meinem Programm geöffent (über Parameterauswertung). Dabei wird allerdings jedesmal eine neue Instanz gestartet. Ich möchte allerdings, dass die neue Instanz der ersten Instanz die Parameter mitteilt und sich dann beendet, damit die Datei in der alten Insantz geöffent wird. Vielen Dank im Voraus. |
Re: Parameter einer 2. Instanz and die Erste senden (und exi
Wobei genau kommst du dabei nicht weiter? Schaffst du nicht das Programm welches als zweites gestartet wird zu beenden. Weißt du nicht wie man feststellt ob die Anwendung bereits offen ist. Weißt du nicht wie du Daten an ein anderes Programm schickst (Parameter senden). Zu einigen, vielleicht sogar allen Fragen lässt sich über die Suchfunktion schon eine Menge finden.
Es wäre sehr hilfreich deinen aktuellen Stand zu wissen um eben zu wissen wo du nicht weiterkommst. Schließlich wollen wir nur helfen und dir nicht die komplette Lösung tippen so das du nur noch compilieren brauchst. |
Re: Parameter einer 2. Instanz and die Erste senden (und exi
Du möchtest, das, so wie zB. wenn Du im Explorer mehrere Videos auswählst und öffnest, diese im Media-Player in der Wiedergabeliste stehen in Deinem Programm haben.
Stimmt das?! |
Re: Parameter einer 2. Instanz and die Erste senden (und exi
Sorry, Sorry.
Entschuldigung, da war ich wohl wieder mal zu schnell und ungenau. Außerdem entschuldige ich mich für die Rechtschreibfehler, leider kann ich sie nicht mehr wegeditieren (24h countdown ist überschritten) Zur Zeit verwende ich folgenden Code (aus dem EasyHelper [ich weiß, das ist die Konkurenz...])
Delphi-Quellcode:
initialization //Um zu verhindern, dass Emat mehrmals gestartet wird, //aber es trozdem möglich ist, wenn Delphi läuft, um auch während //des Programmierens mit Emat Musik hören zu können. if FindWindow('TAppBuilder', nil) <= 0 then begin mHandle := CreateMutex(nil,True,'Emat'); if GetLastError = ERROR_ALREADY_EXISTS then begin ShowWindow( Application.Handle, SW_HIDE ); SetWindowLong( Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); ShowWindow( Application.Handle, SW_SHOW ); //Hier müsste anstatt der Fehlermeldung meine andere Instanz die übergebene Parameter übersendet bekommen. Aber wie geht das? MessageDlg(ONLYRUNONETIME, mtError, [mbOk], -1); Halt; end; end; finalization if mHandle <> 0 then CloseHandle(mHandle) Der Bewirkt, dass beim 2. Start einer Instanz meines Mp3-Player eine Fehlermeldung kommt, die besagt, dass das Programm nur einmal gestartet werden kann (um zu verhindern, dass 2 Instanzen die Playlisten und Einstellungsinidateien gegeneinander überschreiben und Inkonsistenzen enstehen). Danach beendet sich die Instanz wieder. Eine Außnahme bildet Delphi selbst, weil ich während der Arbeit an dem Programm eine andere Instanz trotzdem verwenden möchte. (Nur der 'dumme' User darf das nicht) |
Re: Parameter einer 2. Instanz and die Erste senden (und exi
|
Re: Parameter einer 2. Instanz and die Erste senden (und exi
Danke, danke. Ich versuche jetzt mal meine Ausnahme einzufügen (während Delphi läuft...).
Falls das zuverlässig klappt, kriegt ihr hier auch den Code und vielen Dank, ansonsten melde ich mich wieder ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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