1

背景

  • 我用 C# 编写了一个注册 Windows 热键的应用程序(当我按下 PRINTSCREEN 时它会截屏)
  • 我注册热键、捕获屏幕等的代码都可以工作。那里没有问题。

问题

  • 如果我的应用程序正在运行(并且成功注册了热键),然后我做了一些导致 UAC 提示的事情 - 通常这是在例如我启动一些安装程序时引起的 - 那么热键就会丢失。Lost = 之后,当我点击 printscreen 时,该事件永远不会回到我的应用程序中。我必须关闭应用程序并重新启动。

问题

  • 为什么热键丢失了?
  • 注册热键时,我可以和应该做些什么不同的事情?

笔记

  • 我已经在其他注册热键的应用程序中看到了这种行为 - 使用管理员权限使用热键运行应用程序可以防止热键丢失
  • 注册热键时,我可以和应该做些什么不同的事情?
  • 避免像 setup.exes 这样导致 UAC 提示的应用程序不是一个可行的解决方案 - 我截取屏幕截图的全部目的是记录多个应用程序的设置体验
  • 我有一个解决方法,我可以使用管理员权限启动应用程序 - 但我宁愿避免让用户这样做

代码

我的代码与此非常相似:http: //www.codekeep.net/snippets/ea68475b-c33e-4a71-8008-90f63d7e918d.aspx

4

2 回答 2

1

鉴于Print Screen已经截取了屏幕截图并将其放在剪贴板上,您是否考虑过监视剪贴板的更改?

查看SetClipboardViewer API 函数。例如. _

于 2009-09-13T06:12:28.813 回答
0

当您做一些可能导致 UAC 的事情时 - 为什么不先取消注册热键,然后再重新注册呢?

于 2009-09-13T20:05:37.027 回答