这应该很简单:我正在创建一个使用 win32CreateProcess()
函数生成进程的程序。加载此过程后,我发现它的窗口使用FindWindow
并使用SendMessage()
. 问题是,我如何知道该窗口何时准备好接受消息?
考虑以下:
HWND wnd;
BOOL Start()
{
// Spawn the process
if (! CreateProcess(...))
return FALSE;
// Find the process's window (class and name already known)
wnd = FindWindow(MY_WINDOW_CLASS, MY_WINDOW_NAME);
// Always returns FALSE because window has not yet been created.
return (wnd != NULL);
}
上面的代码(几乎?)总是会失败;无法快速创建和找到该窗口。如果我在and调用Sleep(1000)
之间放置一个线程等待,例如,它可以正常工作。但这感觉像是一个非常糟糕的黑客攻击。CreateProcess
FindWindow
我该如何改进呢?