PB中系統熱鍵(不管視窗是否有焦點)

來源:互聯網
上載者:User

 

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.