首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不覆盖现有功能的C++ RegisterHotKey

不覆盖现有功能的C++ RegisterHotKey
EN

Stack Overflow用户
提问于 2013-08-24 05:21:06
回答 1查看 1.3K关注 0票数 3

当我在C++ (本例中的PrtScn键)中注册一个热键时,我注意到原来的功能丢失了。键不再捕获屏幕的图像。有没有办法在不破坏现有绑定的情况下注册热键?

问题背景:我正在尝试创建一个应用程序来帮助我们的测试团队自动完成截图的任务。当用户单击PrtScn / Alt+PrtScn键时,我希望运行一个小应用程序,该应用程序会选择剪贴板上的图像并将其推入文档中。这个应用程序的大部分都是用Java编写的,但是我不得不来C++注册一个热键。

谢谢你的帮助!!

这是我用来注册热键的代码:

代码语言:javascript
复制
RegisterHotKey(NULL, 1, MOD_ALT | MOD_NOREPEAT, VK_SNAPSHOT);
RegisterHotKey(NULL, 2, MOD_NOREPEAT, VK_SNAPSHOT);

while (GetMessage(&msg, NULL, 0, 0) != 0)
{
    if (msg.message == WM_HOTKEY)
    {
        WinExec(" The Java Application ", SW_SHOWNORMAL);
    }
} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-24 05:52:03

我不认为有任何有文档的方法可以通过编程方式触发操作系统的打印屏幕功能。我有一些你可以尝试的想法:

  1. 自己实现复制到剪贴板的功能,或者
  2. 一旦您的热键被触发,就暂时取消热键注册,并使用SendInput()重新按下键(诚然,这有点疯狂),或者
  3. 完全删除热键方法,而是使用SetClipboardViewer()等注册剪贴板查看器。

在我看来,最后一个想法似乎是最好的--当剪贴板的内容发生变化时,您会得到通知,然后很容易看到剪贴板上的格式是否是图像。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18415205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档