Announcement

Collapse
No announcement yet.

Externes Programm schließen

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

  • Externes Programm schließen

    Hallo

    Ich habe in meinem Programm eine zweite EXE aufgerufen, die eine bestimmte Zeit ablaufen soll.
    Das aufrufen mit ShellExecute.... ist ja kein Problem.Mein eigenes Programm kann ich mit Hauptformular->Close(); schließen.
    Wie kann ich das externe Programm beenden?

    Grüße Stefan

  • #2
    Ich habe das noch nicht ausprobiert, also leider nur einen allgemeinen Hinweis.

    Das Fenster der geöffneten Anwendung suchen (glaube die Funktion heißt FindWindow)

    Dem Fensten dann ein "echte" Windowsmessage vom Typ WM_CLOSE senden.

    M.E. nach, kann sich die geöffente Application immer noch gegen das beenden "wehren", da sie ev. auf die Message nicht oder nur mit Nachfrage beim User reagiert
    Christian

    Comment


    • #3
      Hallo Stefan,

      so geht's:
      <Pre>
      myhwnd := Findwindowex(0,0,nil,PChar('DEIN NAME WIE IM TASKMANAGER'));
      if myhwnd <> 0 then
      begin
      getwindowrect(myhwnd,MyRect);
      x := MyRect.left;
      z := MyRect.top;
      y := MyRect.right;
      i := MyRect.bottom;
      SetWindowPos(myhwnd,HWND_NOTOPMOST,x-2,z,y,i,SWP_FRAMECHANGED);
      getwindowrect(myhwnd,MyRect);
      if (MyRect.left <> x-2) or
      (MyRect.top <> z) or
      (MyRect.right <> y) or
      (MyRect.bottom <> i) then
      Sendmessage(MyHwnd, wm_close,0,0);
      end;
      </PRE&gt

      Comment


      • #4
        Sorry, das war etwas viel Code:

        alle zwischen getwindowrect (incl) und oberhalb sendmessage ist zu viel!

        Gruß

        Pete

        Comment

        Working...
        X