【问题标题】:hook into wndproc of another application?挂钩到另一个应用程序的 wndproc?
【发布时间】:2012-03-20 21:58:38
【问题描述】:

我有一个小问题希望有人能帮助我。 有什么方法可以挂接到其他应用程序WNDPROC

情况是我想在另一个应用程序的菜单栏中插入一个菜单,并且我想为每个菜单项定义命令。

我能够使用一些 Win32 API 插入带有菜单项的菜单 函数(user32.dll),但我无法设置该菜单项的命令,以便在单击时实际执行某些操作。

通过谷歌搜索,我得到了一些关于 wndprocess 的信息,我应该拦截发送的 ID 命令并触发一些功能,但我卡住了。

谁能帮帮我?

【问题讨论】:

  • 到目前为止你有什么?
  • 只是创建和插入的菜单,不知道要覆盖应用程序 wndprpc
  • 窗口挂钩是您的朋友,请查看 MSDN 上的 SetWindowsHookEx。更大的问题是将代码放入远程进程,因为您提到了 Python。像这样的窗口钩子通常会导致带有钩子函数的 DLL 被加载到远程进程中并从那里运行。
  • 是的,注入的 DLL 肯定是要走的路。如果你真的想要,你可以让那个 DLL 绑定到一个套接字,这样你就可以从 Python 连接到它并与之通信。
  • 感谢您的回复。这似乎超出了我的想象!,除了注入 dll 的东西之外,还有什么方法可以创建菜单吗?!

标签: python winapi wndproc


【解决方案1】:

你这样做是错误的。如果您考虑一下,您会意识到使用自定义“操作”响应菜单事件必须需要一些代码才能在您的目标进程中运行。这意味着您需要将代码注入其他进程才能实现您想要的。

由于无论如何您都需要注入代码,我强烈建议您查看 DLL 注入到其他进程(搜索“Dll 注入示例”)。这会将您的代码引导到其他进程中,您可以在那里构建菜单。

这还有一个优势,那就是外来应用程序不会依赖于您的应用程序的响应性 - 这一切都在进行中。

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多