Einzelnen Beitrag anzeigen

SneakyBagels
(Gast)

n/a Beiträge
 
#2

AW: Alte Instanz über CmdLine aktivieren\starten

  Alt 24. Mai 2017, 19:07
Sobald dein Programm merkt, es gibt schon eine Instanz dann musst du deiner bereits existierenden Instanz über SendMessage die Daten schicken die du schicken willst. z.B. den Pfad zum Film.
In der existierenden Instanz kannst du dann mit procedure WMCopyDataEx(var msg: TWMCopyData); message WM_COPYDATA; die Daten abfragen.

Die sind dann in msg.CopyDataStruct.lpData drin.

Schicken mit
Delphi-Quellcode:
       var
        aCopyData: TCopyDataStruct;
        hExistingInstance: THandle;

       hExistingInstance := FindWindow(PWideChar('fensterclass'), nil);

       pName := PWideChar('pfad zum film');
       aCopyData.dwData := 0;
       aCopyData.cbData := (StrLen(pName) + 1) * SizeOf(Char);
       aCopyData.lpData := pName;

       SendMessage(hExistingInstance, WM_COPYDATA, 0, Integer(@aCopyData));
  Mit Zitat antworten Zitat