Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi postmessage oder Keybd_Event um openvpn zu beenden ? (https://www.delphipraxis.net/146864-postmessage-oder-keybd_event-um-openvpn-zu-beenden.html)

andreasm82 28. Jan 2010 09:43


postmessage oder Keybd_Event um openvpn zu beenden ?
 
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;

andreasm82 29. Jan 2010 07:53

Re: postmessage oder Keybd_Event um openvpn zu beenden ?
 
Juhu, ich habe selbst etwas gefunden:


http://www.remkoweijnen.nl/blog/2009...n-or-wm_keyup/


Delphi-Quellcode:
PostKeyDownUpMessage(h,VK_F4,0);
.... führt zum Erfolg!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz