C# 为什么不是';在我的窗口里找不到标签?

C# 为什么不是';在我的窗口里找不到标签?,c#,.net,winapi,windows-7,windows-xp,C#,.net,Winapi,Windows 7,Windows Xp,我正在调试一个用C#编写的小测试驱动程序应用程序。它打开了一个测试应用程序的几个实例。测试应用程序连接到服务器,成功连接后,在标签中显示“REMOTE_connected”。因此,测试驱动程序在尝试将数据输入到测试应用程序之前正在查找这些数据 下面是代码的样子: Console.Out.WriteLine("MAIN HANDLE IN GETCONN: " + Hwnd); //Attempt to find if we have have connected to the remot

我正在调试一个用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上实现了这一点(而我在Windows7上)


最后,如果我在VisualStudio中运行它并设置一些断点,那么它似乎可以工作。因此,这似乎不是一个逻辑缺陷,而是某种时间或争用问题。

我的问题与这个问题类似:


我的MainWindowHandle没有设置为我期望的窗口(这是我用Spy++计算出来的,谢谢Rob p.!)。因此,我使用EnumWindows编写了一些代码来查找我要查找的窗口(请参阅链接帖子中Joshua的答案),然后使用该窗口句柄传递到FindWindowEx,一切都按预期进行了。

记住FindWindowEx搜索
GetWindowText
字符串,不是
WM_GETTEXT
值。Spy++在跟踪这类内容方面真的很有帮助。查看这篇文章是的,我读了另一篇文章,但真正让我困惑的是,它在设置断点时起作用。我还将调查陈先生的建议。因此,在Spy++中,父窗口句柄似乎与我在代码中打印的句柄不同。有趣的。。。至少这给了我一些继续下去的机会。