奇怪的问题,我无法解决。搜索主窗口,然后搜索标题为“开始”的按钮控件。在它找到开始并发送按钮点击后,它只是坐在那里,永远不会过去,所以我从来没有在控制台中看到“离开循环”。
该按钮确实被按下并弹出一个消息框,我将在这部分代码之外继续回答。奇怪的是,一旦我手动回答该框,它就会中断 NativeMethods.SendMessage(start, BM_CLICK, IntPtr.Zero, ""); 我看到“离开循环”,然后一切都很开心,继续前进。
我在这里想念什么?希望我解释得足够好。
while (!mainFound)
{
hwnd = NativeMethods.FindWindow(null, "Loader");
if (!hwnd.Equals(IntPtr.Zero))
{
Console.WriteLine("Found Main");
IntPtr p = IntPtr.Zero;
while (!mainFound)
{
hwndChild = NativeMethods.FindWindowEx(hwnd, p, null, null);
if (hwndChild == IntPtr.Zero)
{
break;
}
IntPtr start = NativeMethods.FindWindowEx(hwndChild, IntPtr.Zero, null, "Start");
if (!start.Equals(IntPtr.Zero))
{
Console.WriteLine("Found Start");
NativeMethods.SendMessage(start, BM_CLICK, IntPtr.Zero, "");
Console.WriteLine("Leaving Loop");
mainFound = true;
}
//Console.WriteLine(hwndChild);
p = hwndChild;
}
}
}