Windows Taste deaktivieren

  • Hio
    ------------------------

    Weis einer zufällig wie ich die Windows Taste deaktivieren kann, bzw. dann wieder aktivieren.


    // Mfg. Freeðøm

    • Offizieller Beitrag

    Geht ausschließlich per Registryeintrag und ist erst ab Neustart wirksam.
    Hier ein Link

    Oder du fängst den Tastendruck per Hook ab.

    Edit:
    Hier mal das Bsp. für den Hook. Solange das Skript läuft, werden Tastatureingaben der beiden WIN-Tasten ins Nirvana umgeleitet. :D

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #Include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $hHookKeyboard, $pStub_KeyProc
    Global Const $VK_WIN_LEFT = 0x5B
    Global Const $VK_WIN_RIGHT = 0x5C
    Global Const $Key_NONE = 0x0

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("!e", "ExitNow") ; Exit Alt+e

    [/autoit] [autoit][/autoit] [autoit]

    $pStub_KeyProc = DllCallbackRegister("_KeyProc", "int", "int;ptr;ptr")
    $hHookKeyboard = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($pStub_KeyProc), _WinAPI_GetModuleHandle(0), 0)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func ExitNow()
    Exit
    EndFunc ;==>ExitNow

    [/autoit] [autoit][/autoit] [autoit]

    Func OnAutoITExit()
    DllCallbackFree($pStub_KeyProc)
    _WinAPI_UnhookWindowsHookEx($hHookKeyboard)
    EndFunc ;==>OnAutoITExit

    [/autoit] [autoit][/autoit] [autoit]

    Func _KeyProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
    Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
    Local $vkCode = DllStructGetData($tKEYHOOKS, "vkCode")
    If ($wParam = $WM_KEYDOWN) And ($vkCode = $VK_WIN_LEFT Or $vkCode = $VK_WIN_RIGHT) Then
    DllCall('user32.dll', 'int', 'keybd_event', 'int', $Key_NONE, 'int', 0, 'int', 0, 'ptr', 0)
    Return -1
    EndIf
    Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
    EndFunc ;==>_KeyProc

    [/autoit]