En AutoIt v3, il existe une fonction appelée HotKeySet. Il définit un raccourci clavier qui appelle une fonction utilisateur lorsqu'il est pressé. Il s'agit d'un raccourci clavier système, ce qui signifie que la clé ne peut pas être utilisée pour autre chose lorsque le raccourci clavier est défini.Comment configurer HotKey à l'échelle du système en C#
Fondamentalement, je voudrais attraper Esc ou toute autre touche comme $
, `
, etc., et lorsque l'utilisateur partout, même en dehors de l'application presse, il faut me le faire savoir. Par exemple, je voudrais faire comme HotKeySet ({ESC}) à l'intérieur d'une boucle et quand c'est fait, le programme attendrait que cette touche soit pressée auparavant.
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
}
}
}
On dirait que c'est exactement ce dont j'ai besoin :-) Merci beaucoup! – MadBoy