PB中系统热键(不管窗口是否有焦点)

 

-- Flystone 整理

 

首先定义 API

 

  1. FUNCTION Integer GlobalAddAtom(ref string lpString) LIBRARY "kernel32.dll" ALIAS FOR "GlobalAddAtomA" 
  2. FUNCTION ulong RegisterHotKey(ulong hwnd,ulong id,ulong fsModifiers,ulong vk) LIBRARY "user32.dll"

定义变量:

 

 

 

  1. constant integer MOD_ALT = 1
  2. constant integer MOD_CONTROL = 2
  3. constant integer MOD_SHIFT = 4
  4. int atomid[11] // 用于放热键ID

注册热键,比如说在OPEM事件中:

 

  1. long ll_RC
  2. string ls_str[11]
  3. ls_str[1] = "My atom ID0"
  4. atomid[1] = GlobalAddAtom(ls_str[1]) //得到唯一的ID,保证不和其他应用程序发生冲突
  5. ll_RC = RegisterHotKey(Handle(this), atomid[1], 0, 48) //0
  6. ls_str[2] = "My atom ID1"
  7. atomid[2] = GlobalAddAtom(ls_str[2]) //得到唯一的ID
  8. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[2], 0, 49) // 1
  9. ls_str[3] = "My atom ID2"
  10. atomid[3] = GlobalAddAtom(ls_str[3]) //得到唯一的ID
  11. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[3], 0, 50) // 2
  12. ls_str[4] = "My atom ID3"
  13. atomid[4] = GlobalAddAtom(ls_str[4]) //得到唯一的ID
  14. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[4], 0, 51) // 3
  15. ls_str[5] = "My atom ID4"
  16. atomid[5] = GlobalAddAtom(ls_str[5]) //得到唯一的ID
  17. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[5], 0, 52) // 4
  18. ls_str[6] = "My atom ID5"
  19. atomid[6] = GlobalAddAtom(ls_str[6]) //得到唯一的ID
  20. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[6], 0, 53) //5
  21. ls_str[7] = "My atom ID6"
  22. atomid[7] = GlobalAddAtom(ls_str[7]) //得到唯一的ID
  23. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[7], 0, 54) // 6
  24. ls_str[8] = "My atom ID7"
  25. atomid[8] = GlobalAddAtom(ls_str[8]) //得到唯一的ID
  26. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[8], 0, 55) // 7
  27. ls_str[9] = "My atom ID8"
  28. atomid[9] = GlobalAddAtom(ls_str[9]) //得到唯一的ID
  29. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[9], 0, 56) // 8
  30. ls_str[10] = "My atom ID9"
  31. atomid[10] = GlobalAddAtom(ls_str[10]) //得到唯一的ID
  32. ll_RC = ll_RC+ RegisterHotKey(Handle(this), atomid[10], 0, 57) // 9
  33. ls_str[11] = "My atom IDX"
  34. if ll_RC < 10 then //这儿自行修改
  35.     messagebox("错误","错误信息")
  36. end if 

 

响应OTHWE事件:

 

  1. IF wparam = atomid[1] ....  THEN    
  2.     //messagebox('','asdf')
  3.          //你的脚本
  4. END IF

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值