怎么從hotkey控制元件 獲取組合鍵值?
為了注冊系統熱鍵,想從hotkey控制元件 重獲取鍵值
w:=HotKey1.HotKey;
h:=Hi(w); {獲取高位元組}
l:=Lo(w) ; {獲取低位元組}
HotKeyId1 := GlobalAddAtom('MyHotKey1');
RegisterHotKey(Handle, HotKeyId1,h,l)
但是不注冊成功,l值正常獲取,h值確無法正常獲取,查百度組合鍵只有CTRL,ALT,SHIFT
其他都是快捷鍵,包括F1-F12,字母,數字,用IntToStr,都可以準確獲取鍵值
那么,如何準確獲取組合鍵CTRL,ALT,SHIFT的值 進行注冊呢??
uj5u.com熱心網友回復:
現在用delphi的人越來越少,只能耐心等待
uj5u.com熱心網友回復:
THotKey組件就是windows Hot Key的包裝,就不要再用RegisterHotKey了。uj5u.com熱心網友回復:
終于有人幫我看看這個問題了,淚崩啊!
請教大神 ,那么這個代碼應該如何寫才對啊?
uj5u.com熱心網友回復:
不知道你要做什么...uj5u.com熱心網友回復:
讓用戶通過Thotkey控制元件設定自己想要的快捷鍵,而不是程式寫死在那里的快捷鍵
uj5u.com熱心網友回復:
那很簡單,比如有一個menuitem叫open1,只需要open1.shortcut := HotKey1.HotKey; 如果允許用戶運行時改變hotkey的定義,那需要寫一個onchange事件處理,在里面重新設定,比如再次open1.shortcut := HotKey1.HotKey;默認情況下hotkey組件是可以在運行時輸入的,這樣用戶可以直接改,你只需要在onchange里使之生效即可。如果你不讓它顯示,也可以程式的方式設定:
HotKey1.HotKey := ord('A');
HotKey1.Modifiers := [hkAlt];
uj5u.com熱心網友回復:
感謝回復,追問一下,做成全域的快捷鍵呢?
比如程式需要隱藏或后臺;按快捷鍵后 對其他視窗的進行操作.
就是寫個腳本操作滑鼠之類的
uj5u.com熱心網友回復:
可以用SetWindowsHookEx設定鍵盤或者滑鼠鉤子,網上有很多例子。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47720.html
標籤:語言基礎/算法/系統設計
