将我的程序集成到 Windows 中以替换该特定操作的默认处理程序
我想以这样的方式将我的程序集成到 Windows 中,例如,当用户按下 ctrl + shift、ctrl + v 或任何其他组合键时,我的程序应该运行。我见过像 TeraCopy 这样的软件,它在按下 Ctrl-V 时启动,并且它们处理复制操作,而不是 Windows 资源管理器(默认处理程序)。
我知道可以使用 Windows SDK 来完成,但我不确定使用哪个 API 或从哪里开始。任何人都可以提供链接/参考/代码来提供帮助吗?
I want to integrate my program in windows in such a way that, for exmaple, when the user presses ctrl + shift, or ctrl + v, or any other Key combo, my program should run. I've seen softwares like TeraCopy, which startup when Ctrl-V is pressed, and they handle the copy operation, instead of windows explorer (default handler).
I know it can be done using Windows SDK, but I'm not sure which API to use, or where to start. Can anyone give links/references/code to provide help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用键盘钩子,可以通过
SetWindowsHookEx
和WH_KEYBOARD_LL
常量作为idHook
参数来实现。然后,您可以设置每当按键状态发生变化时的回调函数。当检测到某个组合时(例如同时按下 Ctrl 和 V,但没有按下其他修饰键),您就可以执行您的操作。
请记住,某些程序需要保留 Ctrl+V 以用于其他目的,因此您可能需要使用
GetForegroundWindow
来检测 Windows 资源管理器当前是否成为目标。请参阅:http://msdn.microsoft.com/en-我们/library/windows/desktop/ms644990.aspx
You need to use a keyboard hook, which can be implemented with
SetWindowsHookEx
and theWH_KEYBOARD_LL
constant as theidHook
parameter.Then you can set up a callback function for whenever the key state changes. When a certain combination is detected (e.g. Ctrl and V are pressed at the same time, but no other modifier keys) then you can perform your action.
Keep in mind that certain programs will need to retain Ctrl+V for other purposes, so you will probably want to use
GetForegroundWindow
to detect if Windows Explorer is currently being targeted.See this: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990.aspx