Einzelnen Beitrag anzeigen

Neg

Registriert seit: 16. Jan 2004
Ort: Berlin
63 Beiträge
 
Delphi 5 Professional
 
#1

Minimiertes Fenster nach Botschaft anzeigen

  Alt 20. Feb 2004, 04:31
Hmm.. Ich bin nicht sicher, ob hier das richtige Forum ist.

Naja, ich erzähle einfach mal, was das Problem ist:
Von meinem Programm darf immer nur eine Instanz laufen. Startet man eine zweite, so wird eine Botschaft mit dem 1. Parameter an die erste geschickt, damit diese sich um die entsprechende Datei kümmert. Das übliche halt. Jetzt möchte ich aber, dass die erste Instanz nach Erhalt der Botschaft wieder sichtbar wird, falls sie minimiert ist. Ich dachte eigentlich, dass das trivial wäre, aber aus irgendeinem Grund ist es das nicht. Kurzum, ich kriege es nicht hin.

Hier der Code mit der Reaktion auf die Botschaft:

Delphi-Quellcode:
procedure TMeinForm.WMCopyData(var Message: TWMCopydata);
var
  s : Array[0..255] of Char;
begin
  Application.BringToFront; // nützt nichts
  MeinForm.Show; // funktioniert auch nicht
  MeinForm.SetFocus; // und das erst recht nicht
  MeinForm.WindowState:=wsNormal; // das ebenfalls nicht

  FlashWindow(Application.Handle, True); // das geht zwar, ist aber nicht, was ich will

  StrLCopy(s, Message.CopyDataStruct.lpdata, Message.CopyDataStruct.cbdata);
  if s<>'then MachWas(s);
end;
Wo ist der Trick?
Firmly against signatures. And a hypocrite.
  Mit Zitat antworten Zitat