我有一个生活在托盘中的应用程序,我想定义服务器热键,它将在我的程序中触发事件。
我从@AaronLS在以下问题中的出色回答中找到了灵感:Set global hotkeys using C#
如果我注册另一个应用程序已经定义的热键,RegisterHotKey将返回false,而不是注册它。那么,我如何覆盖或替换热键呢?
发布于 2019-07-29 22:22:08
那么,我如何覆盖或替换热键呢?
表面上看你做不到。那是精心设计的。想象一下,如果程序可以随意劫持其他程序的热键,那将是不愉快的。
function要求调用方与使用RegisterHotKey注册的线程相同,这使得另一个程序无法注销另一个程序的热键:
UnregisterHotKey函数: 释放以前由调用线程注册的热键。
您可以做的是使用Win32将代码注入到远程进程中(假设您自己的进程有权限这样做),然后在进程的UI线程中调度代码,然后调用UnregisterHotKey --但这是另一个问题。
https://stackoverflow.com/questions/57261179
复制相似问题