在我的Qt应用程序中,当我的应用程序最小化或托盘时,我想监视全局键盘和鼠标,当用户使用CTRL +右击键时,我的应用程序可见状态设置为显示。
我该如何实现它。
答案 0 :(得分:2)
有很多很好的理由不写这种应用程序(例如,当你有两个程序都有这样的想法与全局行为,他们会相互冲突,并做一些随机的看似)。事实上,全局捕获Ctrl +右击并弹出一个应用程序听起来是一个非常糟糕的主意,因为许多程序已经为此定义了一个重要的行为。
通常更好的方法是让用户通过操作系统的机制分配热键:
http://lifehacker.com/343328/create-a-keyboard-shortcut-for-any-menu-action-in-any-program
或者建议用户使用一些已经弄明白的第三方程序,并让他们移动冲突的全球热键以满足他们的口味:
http://lifehacker.com/software/hack-attack/turn-any-action-into-a-keyboard-shortcut-316589.php
有一些程序可以通过触摸按钮来解决提供服务的问题,这些程序具有相当不错的用户界面隐喻,这可能会让你相信它们比挂钩右键更好。 Mac上的Quicksilver对于想法来说是一件好事。
无论如何你要解决它,你可能必须以不同的方式为每个平台做这件事。在Windows上,您需要一个全局 WH_MOUSE钩子:
http://msdn.microsoft.com/en-us/library/ms644960(VS.85).aspx
答案 1 :(得分:0)
虽然我同意HostileFork,但这可能会对您有所帮助:http://libqxt.bitbucket.org/doc/tip/qxtglobalshortcut.html