在AutoIt v3 中有一个名为HotKeySet的函数。它设置了一个热键,在按下时调用用户函数。这是一个系统范围的热键,这意味着当设置热键时,该键不能用于其他任何操作。
基本上,我想抓住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
}
}
}