我正在尝试调试一个用 C# 编写的小测试驱动程序应用程序。它打开了我们拥有的测试应用程序的几个实例。测试应用程序连接到服务器,并在成功连接后在标签中显示“REMOTE_CONNECTED”。因此,测试驱动程序在尝试将数据提供给测试应用程序之前正在寻找它。
代码如下所示:
Console.Out.WriteLine("MAIN HANDLE IN GETCONN: " + Hwnd);
//Attempt to find if we have have connected to the remote server
IntPtr connHwnd = FindWindowEx(Hwnd, IntPtr.Zero, null, "REMOTE_CONNECTED");
connHwnd 总是返回 IntPtr.Zero 并且打印到控制台的 Hwnd 是我期望的测试应用程序的句柄。测试驱动程序在循环中坐了一会儿,反复调用上面的代码,直到找到那个标签。我可以在屏幕上看到标签显示“REMOTE_CONNECTED”但该功能没有找到它。
此外,其他人已经让它在 XP 上工作(而我在 Windows 7 上)。
最后,如果我在 Visual Studio 中运行它并设置一些断点,那么它似乎可以工作。所以这似乎不是一个逻辑缺陷,而是某种时间或争用问题。