Announcement

Collapse
No announcement yet.

Programm aus der Taskleiste wiederherstellen...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programm aus der Taskleiste wiederherstellen...

    Hallo,

    ich habe in meinem Programm eine Funktion integriert, die beim Start prüft ob schon eine Instanz des Programms ausgeführt wird. Ist dem so, blende ich das Programm mit
    <br>
    <B> showwindow(vTmpOffenesFenster,SW_SHOWDEFAULT) </B>
    <br>
    <br>
    SendMessage(vTmpOffenesFenster, WM_SYSCOMMAND, SC_RESTORE, 0); habe ich auch schon versucht...
    <br>
    wieder ein.
    <br>
    Soweit klappt auch alles, nur liegt das Programm als Tray in der Taskbar habe ich das Problem, dass das Programm nach dem es eingeblendet wurde nicht mehr minimieren kann...
    <br>
    Kann mir jemand sagen voran das liegt und wie ich da umgehen kann?
    <br>
    Danke,
    <br>
    Olaf

  • #2
    Hallo Olaf.
    Den Grund nennen kann ich dir nicht, aber ich habe mit dem selben Problem gekämpft. Meine Lösung mag umständlich sein, aber sie funktioniert zumindest. )<br><br>
    Also -<br>
    Ich prüfe in meinem DPR-Quelltext auch, ob das Programm bereits aktiv ist, und in dem Fall rufe ich es so auf:
    <PRE>
    if(not(IsWindowVisible(findwindow(pchar(myClassnam e),nil)))) then PostMessage(findwindow(pchar(myClassname),nil),WM_ SYSCOMMAND,SC_RESTORE,0);
    SetForegroundWindow(findwindow(pchar(myClassname), nil));
    </PRE>
    (In dem Fall habe ich nach dem Fenster mit dem Klassennamen "myClassname" gesucht.) Zusätzlich dazu habe ich die Botschaft "WM_SYSCOMMAND" in meinem Programm berücksichtigt. Und zwar so:
    <PRE>
    procedure TForm1.WMSysCommand(var Message: TMessage);
    begin
    if(Message.Msg = WM_SYSCOMMAND) then
    begin
    case Message.wParam of
    SC_RESTORE : Application.Restore;
    end;
    end;

    inherited;
    end;
    </PRE>
    Die Funktion wird im "private"-Teil der Form wie bekannt definiert.
    Wie gesagt, es mag umständlich sein - aber dafür klappt´s auch wieder mit dem Minimieren. )<br><br>
    Gruß,<br>Mathias

    Comment


    • #3
      Hallo Mathias,

      klappt super! Danke!

      Gruss

      Ola

      Comment

      Working...
      X