Einzelnen Beitrag anzeigen

andreasm82

Registriert seit: 23. Nov 2009
66 Beiträge
 
#1

postmessage oder Keybd_Event um openvpn zu beenden ?

  Alt 28. Jan 2010, 10:43
Hallo,

bisher habe ich Openvpn Verbindungen getrennt, in dem ich das Konsolenfenster von Openvpn über postmessage(h,WM_CLOSE,0,0); geschlossen habe.
Dies funktioniert!

Jedoch würde ich gerne die Verbindung vorher sauber trennen, dies funktioniert im Konsolenfenster von openvpn,
indem man F4 drückt.
Dies würde ich gerne automatisieren, was jedoch nicht klappt.
Weder über postmessage noch über Keybd_Event wird F4 im Konsolenfenster ausgelöst.

woran könnte dies liegen?

Delphi-Quellcode:
function CloseOpenVPN(DisconnectString: String): Boolean;
var
   h: hwnd;
begin


  h:=SearchWindowByName(DisconnectString);
  if h <> 0 then
  begin

    ForceForegroundWindow(h); // funktioniert, setzt Fenster immer in den Vordergrund !!!


    postmessage(h, WM_KEYDOWN, VK_F4, 0 );
    postmessage(h, WM_KEYUP, VK_F4, 0 ); // klappt nicht...

    Keybd_Event(VK_F4,0,0,0);
    Keybd_Event(VK_F4,0,KEYEVENTF_KEYUP,0); // klappt nicht...


    delay(15000); // nur zum testen
    postmessage(h,WM_CLOSE,0,0); // funktioniert !!!
    CloseOpenVPN:=True;
  end else begin
    CloseOpenVPN:=False;
    SendErrorMail(23,'');
  end;

end;
  Mit Zitat antworten Zitat