1

我需要观看一个用 c++ 编写的应用程序,并知道它何时移动,以便我的 c# windows 窗体应用程序可以随之移动。

我可以使用计时器轮询 c++ 应用程序的位置,但需要更好的解决方案。

如何查看一个应用程序的 Windows 消息以查看它是否已移动?

可以做到吗?

还是我需要找到一个 C++ dll 来完成它或编写一个?

4

2 回答 2

0

如果您不想从 C# 应用程序轮询 C++ 应用程序,最好将数据从 C++ 应用程序推送到 C#,这样您就可以摆脱不必要的轮询(我假设这就是为什么您不想通过 C# 轮询 C++)。

为此,您可以使用WM_COPYDATA将数据从 C++ 应用程序发送到 C# 应用程序。

于 2011-08-13T22:58:04.007 回答
0

您可以使用SetWindowsHookWH_CBT挂钩,它会通知您窗口移动了。

请参阅如何在 Visual C# 中设置 Windows 挂钩。p/Invoke.net

于 2011-08-13T23:01:54.907 回答