在PB中实现系统热键功能的新方法
本方法可以实现在任何时候,即无论你的窗口是不是当前获得焦点的窗口,还是处于系统图标区,只要用户按下热键,都将触发窗口中的事件,在本例中实现窗口的状态切换。
1、首先我们必须声明WindowsAPI的外部函数:
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"
2、接下来,我们必须给一些需要用到的定量赋上初始值。
Public:
constant integer MOD_ALT = 1
constant integer MOD_CONTROL = 2
constant integer MOD_SHIFT = 4
3、接下来,我们必须利用下面代码在系统中注册我们要使用的热键:
//在窗口的Open事件中
long ll_RC
string ls_str
ls_str = "My atom ID"
atomid = GlobalAddAtom(ls_str) //得到唯一的ID,保证不和其他应用程序发生冲突
ll_RC = RegisterHotKey(Handle(this), atomid, MOD_ALT + MOD_CONTROL, 65) // 65为'A'
//注册的热键为Ctrl+Alt+A
if ll_RC = 0 then
messagebox("错误","错误信息")
end if
4、最后,编写当用户按下热键时的处理程序:
//在窗口的Other事件中
IF wparam = atomid THEN
This.Show()
//在这里编写处理程序
END IF
- 最新文章
- PB的可执行文件所需的环境DLL[01-04]
- 用PB生成GUID解决主键重复[01-04]
- 如何在PB中实现串口编程[01-04]
- 在PB下实现圆形的窗口[01-04]
- 透明文本的实现[01-04]
- 如何判断当前操作系统是否为98/2000/XP[01-04]
- 相关文章
- 在PB中使用FoxPro数据库的方法[01-04]
- 在PB中实现热键的方法[01-04]
- 判断Windows OS 版本类型的方法[01-04]
- PB调用外部程序及判断其完成的方法[01-04]
- PowerBuilder中实现数据窗口打印预览通用方法[01-04]
- PB中协调多数据窗口数据操纵的一种解决方法[01-04]
