首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 在非PB窗口中实现键盘按键和鼠标点击动作的检测
【标  题】:在非PB窗口中实现键盘按键和鼠标点击动作的检测
【关键字】:窗口,键盘,鼠标,PB,PB
【来  源】:网络

在非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

PB8中如何正确得到含有汉字的字符串长度的问题——Davis总结:【上一篇】
PB6.5中使用反三角函数?:【下一篇】
【相关文章】
  • PB8中如何正确得到含有汉字的字符串长度的问题——Davis总结
  • 在PB中应用灵活多样的排序
  • PB通过OLEObject使用Word
  • PB中读取地磅BCD解码
  • PB下使用TreeView控件实现多级分类检索
  • 如何在pb中创建COM组件,并在asp中调用并返回结果集
  • 如何在pb9中调用WebService
  • pb6怎样得到字符串中汉字的个数?
  • 创建不规则窗口
  • 利用VBA的键盘类
  • 【随机文章】
  • 香港3G展特别报道 春节发牌 3G又曝时间表
  • PCI卡的WDM驱动开发笔记
  • [新闻] Groovy 1.0发布
  • 2006-4-24 ASP 插入数据, 换行问题解决方法——简朴版 by Stabx
  • 虚拟网络计算工具VNC使用指南
  • 贴两张FC6
  • Photoshop Under Linux
  • 第一次修改
  • 管理,永远不要寄希望于所谓的真诚,感情.
  • BS开发中常用的javascript技术(整理加精)之表单验证类
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.