本方法可以实现在任何时候,即无论你的窗口是不是当前获得焦点的窗口,还是处于系统图标区,只要用户按下热键,都将触发窗口中的事件,在本例中实现窗口的状态切换。
1、首先我们必须声明windows 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"
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
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器