Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Parameter einer 2. Instanz and die Erste senden (und exit) (https://www.delphipraxis.net/77528-parameter-einer-2-instanz-die-erste-senden-und-exit.html)

Der_Ventilator 20. Sep 2006 19:54


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.

SirThornberry 20. Sep 2006 20:03

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.

Sunlight7 20. Sep 2006 20:31

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?!

Der_Ventilator 22. Sep 2006 18:18

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)

Shaman 22. Sep 2006 18:26

Re: Parameter einer 2. Instanz and die Erste senden (und exi
 
Click me

Greets
Shaman

Der_Ventilator 22. Sep 2006 18:31

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