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;