找回密码
 加入
搜索
查看: 2676|回复: 2

[AU3基础] 移动鼠标或按下键盘的键时,弹出窗口

[复制链接]
发表于 2014-6-8 14:24:56 | 显示全部楼层 |阅读模式
比如,移动鼠标 或 按下键盘的键时,弹出窗口
发表于 2014-7-23 16:23:30 | 显示全部楼层
  1. #include <WinAPI.au3>
  2. #include <WindowsConstants.au3>

  3. Opt('MustDeclareVars', 1)
  4. HotKeySet("^{end}",'_exit')
  5. Global $hHook, $hStub_KeyProc
  6. Global $hStub_MouProc,$hHook_mouse
  7. Local $hmod
  8. $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
  9. $hStub_MouProc = DllCallbackRegister("_Mouse_Events_Handler", "int", "int;ptr;ptr")
  10. $hmod = _WinAPI_GetModuleHandle(0)
  11. $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
  12. $hHook_mouse=_WinAPI_SetWindowsHookEx($WH_MOUSE_LL,DllCallbackGetPtr($hStub_MouProc),$hmod)
  13. While 1
  14.         Sleep(10)
  15.                
  16. WEnd
  17. Func _KeyProc($nCode, $wParam, $lParam)
  18.         Local $tKEYHOOKS, $wVKey
  19.         $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
  20.         If $nCode < 0 Then
  21.                 Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
  22.         EndIf
  23.         $wVKey = DllStructGetData($tKEYHOOKS, "vkCode")
  24.                 If ($wParam = $WM_KEYDOWN) Then
  25.                         ToolTip(''&$wVKey&''&" was pressed.")
  26.                                                 Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam) ;不加这一句可以截断按下动作传递
  27.                                                
  28.                         Return 1
  29.                 ElseIf ($wParam = $WM_KEYUP) Then
  30.                         ToolTip(''&$wVKey&''&" was released.")
  31.                                                                                                 Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam) ;不加这一句可以截断弹起动作传递
  32.                 EndIf
  33.         
  34.         EndFunc        ;==>_KeyProc
  35.        
  36. Func _Mouse_Events_Handler($wnCode, $wwParam, $wlParam)
  37.                 Switch $wwParam
  38.                                 Case $WM_LBUTTONUP     ;弹起鼠标左键
  39.                                         ToolTip('L UP.')
  40.                                        
  41.                                                                 Case $WM_LBUTTONDOWN     ;按下鼠标左键
  42.                                         ToolTip('L DOWN.')
  43.                                        
  44.                                 Case $WM_RBUTTONUP    ;弹起鼠标右键
  45.                                         ToolTip('R UP.')
  46.                                        
  47.                                                                 Case $WM_RBUTTONDOWN    ;按下鼠标右键
  48.                                         ToolTip('R DOWN.')
  49.                                 EndSwitch
  50.                         ;Return _WinAPI_CallNextHookEx($hHook_mouse, $wnCode, $wwParam, $wlParam) ;与按键相同,不加这一句可以阻断鼠标动作传递,但是实际测试没有效果,都不能阻断
  51. EndFunc


  52. Func _exit()
  53.         _WinAPI_UnhookWindowsHookEx($hHook)
  54.         DllCallbackFree($hStub_KeyProc)
  55.         Exit
  56. EndFunc   ;==>_exit
复制代码
用钩子函数,可以实现的
发表于 2015-1-6 08:16:34 | 显示全部楼层
谢谢分享!~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2026-9-20 23:01 , Processed in 0.076235 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表