在AutoIt v3中有一個函數,稱爲HotKeySet。它設置了一個熱鍵,在按下時調用用戶功能。這是一個全系統熱鍵,這意味着當熱鍵被設置時,該鍵不能用於其他任何事情。如何在C系統中設置HotKey系統#
基本上,我想趕Esc鍵或其它鍵,像$
,`
等,當用戶按下它的任何地方,甚至外面的應用程序,它應該讓我知道。
例如,我會像循環內的HotKeySet({ESC})那樣做,當它完成時,程序會等待該按鍵被按下。
public static void work() {
while (true) {
string task = null;
lock (locker)
if (tasks.Count > 0) {
task = tasks.Dequeue();
if (task == null) {
return;
}
}
if (task != null) {
//MessageBox.Show("Performing task: " + task);
Program.mainAnnounceWindow.setLogTextBox(task);
Program.mainAnnounceWindow.setLogTrayTip(task);
Program.windowStateChange("Show");
// Set the hotkey here
SetHotkey(`);
//Wait for hotkey to press when it's pressed... Execute some stuff
Thread.Sleep(5000); // Simulate work...
Program.windowStateChange("Hide");
}
else {
wh.WaitOne(); // No more tasks - wait for a signal
}
}
}
似乎它正是我所需要的:-)謝謝一堆! – MadBoy 2010-02-09 14:20:44