Тока я не пойму где там надо лог и пас вводить в
#include <Misc.au3> HotKeySet("{ESC}", "OnAutoItExit") Global Const $WH_KEYBOARD_LL = 13 Global $hStub_KeyProc = DllCallbackRegister("_Key_Proc", "int", "int;ptr;ptr") Global $hMod = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0) Global $hHook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", "int", $WH_KEYBOARD_LL, _ "ptr", DllCallbackGetPtr($hStub_KeyProc), "hwnd", $hMod[0], "dword", 0) MsgBox(4096, "", "Type anything anywhere and it will appear in the top left corner of the screen.") While 1 Sleep(100) WEnd Func _EvaluateKey_Proc($nKeyCode) Local $sCapt_Codes, $sEng_Codes, $sEngShift_Codes, $sRus_Codes, $sRusShift_Codes Local $sUkr_Codes, $sUkrShift_Codes Local $aCapture_Codes, $aEng_Codes, $aEngShift_Codes, $aRus_Codes, $aRusShift_Codes, $aUkr_Codes, $aUkrShift_Codes Local $sSound Local $sChar Switch $nKeyCode Case 65 To 90, 48 To 57, 186 To 192, 219, 221, 222 ; проверяться будут только нажатия на буквы и цифры и еще клавиши минус и плюс, что после клавиши 0. $sCapt_Codes = _ "АQWERTYUIOPЫЭASDFGHJKLєЮZXCVBNMјѕї" & _ "1234567890Ѕ»" $sEng_Codes = _ "`qwertyuiop[]asdfghjkl;'zxcvbnm,./" & _ "1234567890-=" $sEngShift_Codes = _ '~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?' & _ '!@#$%^&*()_+' $sRus_Codes = _ "ёйцукенгшщзхъфывапролджэячсмитьбю." & _ "1234567890-=" $sRusShift_Codes = _ 'ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,' & _ '!"№;%:?*()_+' $sUkr_Codes = _ "'йцукеягшщзхЇфівапролджєнчсмитьбю." & _ "1234567890-=" $sUkrShift_Codes = _ "’ЙЦУКЕЯГШЩЗХЇФІВАПРОЛДЖЄНЧСМИТЬБЮ," & _ '!"№;%:?*()_+' $aCapture_Codes = StringSplit($sCapt_Codes, "") $aEng_Codes = StringSplit($sEng_Codes, "") $aEngShift_Codes = StringSplit($sEngShift_Codes, "") $aRus_Codes = StringSplit($sRus_Codes, "") $aRusShift_Codes = StringSplit($sRusShift_Codes, "") $aUkr_Codes = StringSplit($sUkr_Codes, "") $aUkrShift_Codes = StringSplit($sUkrShift_Codes, "") Switch _WinGetKeyboardLayout(WinGetHandle("[ACTIVE]")) Case 0409 ;Если раскладка английская If _IsPressed(10) Then ; если нажата клавиша Shift $sChar=_ReplaceKeyCode_Proc($nKeyCode, $aCapture_Codes, $aEngShift_Codes) Else ; если не нажата клавиша Shift $sChar=_ReplaceKeyCode_Proc($nKeyCode, $aCapture_Codes, $aEng_Codes) EndIf $sSound = "en.wav" Case 0419 ;Если расскладка русская If _IsPressed(10) Then ; если нажата клавиша Shift $sChar=_ReplaceKeyCode_Proc($nKeyCode, $aCapture_Codes, $aRusShift_Codes) Else ; если не нажата клавиша Shift $sChar=_ReplaceKeyCode_Proc($nKeyCode, $aCapture_Codes, $aRus_Codes) EndIf $sSound = "ru.wav" Case 0422 ;Если расскладка украинская If _IsPressed(10) Then ; если нажата клавиша Shift $sChar=_ReplaceKeyCode_Proc($nKeyCode, $aCapture_Codes, $aUkrShift_Codes) Else ; если не нажата клавиша Shift $sChar=_ReplaceKeyCode_Proc($nKeyCode, $aCapture_Codes, $aUkr_Codes) EndIf $sSound = "ukr.wav" EndSwitch ToolTip($sChar & " - " & Asc($sChar), 0, 80) SoundPlay($sSound) ;проигрывать звук при нажатии Case Else ; если была нажата не буква и не цыфра, то выход из функции Return EndSwitch EndFunc Func _Key_Proc($nCode, $wParam, $lParam) Local $aRet, $KEYHOOKSTRUCT If $nCode < 0 Then $aRet = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hHook[0], "int", $nCode, "ptr", $wParam, "ptr", $lParam) Return $aRet[0] EndIf If $wParam = 256 Then $KEYHOOKSTRUCT = DllStructCreate("dword;dword;dword;dword;ptr", $lParam) _EvaluateKey_Proc(DllStructGetData($KEYHOOKSTRUCT, 1)) EndIf $aRet = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hHook[0], "int", $nCode, "ptr", $wParam, "ptr", $lParam) Return $aRet[0] EndFunc ;Функция для замены кодов нажатых клавиш с массива Func _ReplaceKeyCode_Proc($nKeyCode, $aSearch_Array, $aReplace_Array) For $i = 1 To $aSearch_Array[0] If $nKeyCode==Asc($aSearch_Array[$i]) Then $nKeyCode=Asc($aReplace_Array[$i]) Return Chr($nKeyCode) EndIf Next EndFunc ;функция позволяет узнать язык текущей расскладки клавиатуры Func _WinGetKeyboardLayout($hWnd) Local $aRet = DllCall("user32.dll", "long", "GetWindowThreadProcessId", "hwnd", $hWnd, "ptr", 0) $aRet = DllCall("user32.dll", "long", "GetKeyboardLayout", "long", $aRet[0]) Return "0000" & Hex($aRet[0], 4) EndFunc Func OnAutoItExit() If $hStub_KeyProc Then DllCallbackFree($hStub_KeyProc) $hStub_KeyProc = 0 DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hHook[0]) If @HotKeyPressed <> "" Then Exit EndFunc