我正在使用WPF在C#中构建应用程序.如何绑定某些键?
另外,我如何绑定到Windows键?
我希望在我的新应用程序中有多个全局热键(从Windows中的任何位置控制应用程序),我在网络上找到的所有给定的源/解决方案似乎提供了一种跛行的解决方案(或者解决方案)仅适用于一个g.hotkey,或运行时在屏幕上创建令人讨厌的鼠标延迟的解决方案).
这里有没有人知道可以帮助我实现这一目标的资源,我可以从中学到什么?什么?
谢谢 !:)
我已经阅读过关于这个问题的类似问题,包括解决C#中全局热键处理的最佳方法?并使用C#设置全局热键.我还调查了NuGet包全球热键,它似乎还处于起步阶段.
这里的问题是,它们中的大多数似乎是为Winforms设计的,或者可能在WPF中运行.他们使用的P/Invoke似乎需要一个窗口句柄.我想在这里有一个无风的应用程序,即在没有主窗体或窗口的情况下运行,除非按下某个键组合,所以实际上可能没有句柄.
那么,如果P/Invoke的Window句柄传递一个厚脸皮的0会导致它不寻找处理按键的窗口吗?或者这是我最好的选择,使用一个看不见的不可聚焦的窗口?
为了添加一些上下文,我正在制作一个无窗口的应用程序与TTS一起使用,提供控制反馈,我的目标受众是盲人和视障用户.有时候,必须输入内容,所以我希望能够在必要时启动表单,但是在大多数情况下,我希望没有窗口会让事情变得混乱.
一些示例代码(我无法验证这是否可以正常工作).
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ScreenReader.sapiEnable(true);
ScreenReader.SayString("Launching application...");
// bind hotkeys here
Application.Run();
}
// called when the right keyboard shortcut is pressed
static void ExitApp()
{
ScreenReader.SayString("Exiting program");
Application.Exit();
}
Run Code Online (Sandbox Code Playgroud)
感谢您提供的任何帮助.