Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

OneInst - Problem bei der Übergabe von Parameter

  Alt 8. Jul 2006, 23:24
Hallo,

ich benutze folgenden Code in meiner Anwendung, um die Anwedung nur einmal zu starten und um sie in den Vordergrund zu bringen. Dass funktioniert alles super, nur beim Übertragen eines Paramters habe ich ein paar Probleme:

Zunächst die oneinst:
Oneinst

Nun habe ich vor SetForegroundWindow(Wnd); folgenden Code eingefügt:
Delphi-Quellcode:
var
  MyCopyDataStruct: TCopyDataStruct;

begin
If ParamStr(1) <> 'then with MyCopyDataStruct do
 begin
   dwData:=SecondInstID; // ID mit der sich das zweite Programm meldet
   cbData:=Length(PChar(ParamStr(1))) + 1;
   lpData:=PChar(ParamStr(1));
   SendMessage(Wnd, WM_COPYDATA, 0, LPARAM(@MyCopyDataStruct));
 end;
end;
Dann habe ich in meiner Unit die Prozedur für das Abfangen des Paramters eingebaut:
Delphi-Quellcode:
procedure TForm1.WMCOPYDATA(var Msg: TWMCopyData);
var
 sText: array of Char;

begin
 If Msg.CopyDataStruct.dwData = SecondInstID then //siehe Oben
  begin
   SetLength(sText,Msg.CopyDataStruct.cbData);
   StrLCopy(PChar(sText), Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
   NewAVObject(PChar(sText));
  end;
end;
Mein Problem liegt nun darin, dass diese Prozedur gar nicht auferufen wird.

Hat jemand eine Ahnung woran das liegen könnte?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat