在非PB窗口中实现键盘按键和鼠标点击动作的检测
问:如何在非PB窗口中实现键盘按键和鼠标点击动作的检测?如很多屏幕捕捉软件,都可以在非本软件窗口中实现热键响应事件。
答:首先调用api函数RegisterHotKey为窗口注册热键。当热键按下后,windows发送wm_hotkey消息给窗口,这时我们可以在PB窗口的other事件中处理。
定义窗口实例变量:
long atomid
constant integer MOD_ALT = 1 //ALT键
constant integer MOD_CONTROL = 2 //CTRL键
constant integer MOD_SHIFT = 4 //SHIFT键
定义API函数:
FUNCTION Integer GlobalAddAtom(ref string lpString) LIBRARY "kernel32.dll" ALIAS FOR "GlobalAddAtomA"
FUNCTION ulong RegisterHotKey(ulong hwnd,ulong id,ulong fsModifiers,ulong vk) LIBRARY "user32.dll"
在窗口的open事件编写脚本:
//注册热键
long ll_RC
string ls_atomid
ls_atomid = 'myatomid'
atomid = GlobalAddAtom(ls_atomid)
//得到惟一的ID,保证不和其他应用程序发生冲突
ll_RC = RegisterHotKey(Handle(this), atomid, MOD_CONTROL , 70)
//注册的热键为Ctrl+F ,70为'F'
//如果组合键,可用MOD_CONTROL + MOD_ALT等
if ll_RC = 0 then messagebox("Error!","热键注册错误")
//热键注册冲突
在窗口的other事件编写脚本:
//处理系统热键
IF wparam = atomid THEN
//处理
messagebox('hello','你好!')
END IF
- 最新文章
- 在非PB9 JSP Target的jsp网页中调用EASer..[01-04]
- 在程序中打印[01-04]
- 在run语句之后判断该程序是否执行完毕[01-04]
- 在pb中用winsock控件使用问题[01-04]
- 在PB中如何使用软件测试工具rational teamtes..[01-04]
- 在pb的程序中屏蔽ctrl alt del 和 window..[01-04]
- 相关文章
