gpt4 book ai didi

c# - 如何在 C# 中设置系统范围内的热键

转载 作者:可可西里 更新时间:2023-11-01 10:09:59 26 4
gpt4 key购买 nike

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

最佳答案

你需要看看 RegisterHotKey user32.dll . pinvoke.net 上有一个很好的例子, RegisterHotKey (user32) .

关于c# - 如何在 C# 中设置系统范围内的热键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2194752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com