我正在编写一个程序来为我自动化一些工作。
我安装了另一个程序(OBS Studio),用于捕获视频。将OBS Studio最小化到系统托盘,并收听我配置的热键CTRL +1。
当我在任意位置按CTRL + 1时,软件开始记录。哪个应用程序在前台都没关系。
我正在尝试从我的应用程序执行相同的操作,发送一个“全局”热键。我花了数小时试图实现这一目标,但没有任何结果。 SendKeys仅适用于当前打开的窗口(不存在),PostMessage也没有结果,我尝试了包装器“ InputSimulator”
所以,总结一下:
希望对这些概念有更深入了解的人可以指导我...
我发现了类似的问题,但仍未得到解答:
Send global keystroke / fake a global hotkey from a Winforms application
我研究过的资料(以及其他资料):
https://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys(v=vs.110).aspx https://dailyoverdose.wordpress.com/2009/10/28/postmessage-and-sendmessage/ https://ourcodeworld.com/articles/read/520/simulating-keypress-in-the-right-way-using-inputsimulator-with-csharp-in-winforms
答案 0 :(得分:0)
我认为您可以使用Hook全局捕获关键事件。
如果您需要C#中的Hook示例,则可以参考以下链接:https://blogs.msdn.microsoft.com/calvin_hsia/2016/11/30/its-easy-to-use-windows-hooks-even-from-c/