-1

我试图弄清楚如何在启动应用程序时拦截发送以创建窗口的消息。我想抓住这条消息,并以某种方式保存它,然后在 10 秒后将其发回。

所以基本上我可以在它创建应用程序窗口之前拦截该消息,然后自己将其发回。

目的不是在应用程序上增加 10 秒的延迟,我只是想多了解一下消息传递系统(如何捕获消息并自己发送出去。)我只是不确定我需要过滤什么才能捕获另一个应用程序的窗口创建以及如何存储消息以便我可以将其发送回去。我不希望它延迟整个过程的启动,只是创建窗口。

我的应用程序监听记事本正在启动

我的应用程序捕获消息以创建窗口

我的应用程序存储消息并将窗口创建延迟 5-10 秒

我的应用程序发送回消息并创建记事本窗口。

谁能帮我完成这个任务?尝试在 C#、vb.net 或 C++ 中执行此操作没有问题。所以任何帮助都会很棒。

4

1 回答 1

0

您正在寻找的内容实际上存在于 windows 中,它被称为“挂钩”(与晚上的女士们无关)。都是本机win32代码。这是一篇旧文章(11 年前!),它的亮点是http://www.codeproject.com/Articles/2082/API-hooking-revealed

Hooking 很难使用,但如果你掌握了它,你会在这个过程中学到很多东西。这也是编写木马病毒等的好东西,这就是为什么它需要提升的特权才能使用。未经检查,较新版本的 Windows 可能已锁定文章中提到的某些内容,但如果您拥有完整的权利,我怀疑它的大部分或全部仍然有效。

如果您真的只是对了解消息传递的真正工作方式感兴趣,那么您实际上不需要深入研究挂钩。学习使用 Spy32(或同等产品),并在一些学习可执行文件中覆盖消息处理程序,这些可执行文件相互之间来回写入消息,您将比其他人更了解 windows。

于 2013-08-23T18:05:57.000 回答