2

我试图弄清楚如何从 c# 中启动进程/窗口开始捕获它的所有窗口消息。这个过程不是我自己的,所以我需要使用某种钩子。我的目标是从初始窗口创建之前开始实时捕获所有消息,直到应用程序退出并将所有消息输出到文本框或文件。所以基本上从应用程序执行的那一刻起。

由于我想从它启动时就捕获它,我可能不会有窗口句柄,因为它们还没有句柄。所以我猜这可能很棘手。

他们的应用程序是否可以用作参考?我只想要来自应用程序的所有消息。

4

1 回答 1

1

我的目标是从初始窗口创建之前开始实时捕获所有消息,直到应用程序退出并将所有消息输出到文本框或文件。

听起来您想要对注册表、文件系统、进程等活动进行“实时”监控。

Process Monitor已经完成了所有这些工作,您可以使用EasyHook进行连接

由于我想从它启动时就捕获它,我可能不会有窗口句柄,因为它们还没有句柄。所以我猜这可能很棘手。

此代码项目文章有一种方法可以防止执行未出现在允许在特定机器上运行的软件列表中的任何程序。也许您可以对其进行调整以满足您的需求。http://www.codeproject.com/Articles/11985/Hooking-the-native-API-and-controlling-process-cre

如果您想要一种低级方法,我建议您阅读Hooks 和 Dlls

于 2013-09-08T04:57:09.757 回答