背景
- 我用 C# 编写了一个注册 Windows 热键的应用程序(当我按下 PRINTSCREEN 时它会截屏)
- 我注册热键、捕获屏幕等的代码都可以工作。那里没有问题。
问题
- 如果我的应用程序正在运行(并且成功注册了热键),然后我做了一些导致 UAC 提示的事情 - 通常这是在例如我启动一些安装程序时引起的 - 那么热键就会丢失。Lost = 之后,当我点击 printscreen 时,该事件永远不会回到我的应用程序中。我必须关闭应用程序并重新启动。
问题
- 为什么热键丢失了?
- 注册热键时,我可以和应该做些什么不同的事情?
笔记
- 我已经在其他注册热键的应用程序中看到了这种行为 - 使用管理员权限使用热键运行应用程序可以防止热键丢失
- 注册热键时,我可以和应该做些什么不同的事情?
- 避免像 setup.exes 这样导致 UAC 提示的应用程序不是一个可行的解决方案 - 我截取屏幕截图的全部目的是记录多个应用程序的设置体验
- 我有一个解决方法,我可以使用管理员权限启动应用程序 - 但我宁愿避免让用户这样做
代码
我的代码与此非常相似:http: //www.codekeep.net/snippets/ea68475b-c33e-4a71-8008-90f63d7e918d.aspx