AutoIt – Kiểm tra người dùng viết gì.

Global Const $WH_KEYBOARD_LL = 13
Global $hHook
Global $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
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)
Global $buffer = ""

MsgBox(4096, "", "Nhap chuot vao OK sau do mo Notepad va viet......." & _
 @LF & @LF & "Jon" & @LF & "AutoIt")

While 1
 Sleep(10)
WEnd

Func EvaluateKey($keycode)
 If (($keycode > 64) And ($keycode < 91)) _
 Or (($keycode > 47) And ($keycode < 58)) Then
 $buffer &= Chr($keycode)
 Switch $buffer
 Case "Jon"
 ToolTip("What can you say?")
 Case "AUTOIT"
 ToolTip("AutoIt Rocks")
 EndSwitch
 ElseIf ($keycode > 159) And ($keycode < 164) Then
 Return
 Else
 $buffer = ""
 EndIf
EndFunc   ;==>EvaluateKey

Func _KeyProc($nCode, $wParam, $lParam)
 Local $ret, $KEYHOOKSTRUCT
 If $nCode < 0 Then
 $ret = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hHook[0], _
 "int", $nCode, "wparam", $wParam, "lparam", $lParam)
 Return $ret[0]
 EndIf
 If $wParam = 256 Then
 $KEYHOOKSTRUCT = DllStructCreate("dword;dword;dword;dword;ptr", $lParam)
 EvaluateKey(DllStructGetData($KEYHOOKSTRUCT, 1))
 EndIf
 $ret = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hHook[0], _
 "int", $nCode, "ptr", $wParam, "ptr", $lParam)
 Return $ret[0]
EndFunc   ;==>_KeyProc

Func OnAutoItExit()
 DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hHook[0])
 DllCallbackFree($hStub_KeyProc)
EndFunc   ;==>OnAutoItExit

Popularity: 32% [?]


    • Check
    • Tháng Năm 28th, 2009

    Không có hàm DllCallbackRegister và DllCallbackGetPtr
    Bạn check lại thử coi

    • dee
    • Tháng Tám 16th, 2009

    Cái này sẽ gửi thông tin về đâu hả anh??

  1. No trackbacks yet.

Chọn kiểu gõ: Tự động TELEX VNI Tắt

Bad Behavior has blocked 49 access attempts in the last 7 days.