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