[求助]C++ 中遇到的奇怪问题
我用::CreateProcess()打开了一个程序窗口
//参数省略,这里没有问题
if (::CreateProcess(m_reg,NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
AfxMessageBox("打开成功!");){
ProcessId = pi.dwProcessId;
Sleep(10000);
::EnumWindows(&EnumWindowsProc, ProcessId);
}
//上面的已经执行成功了的
//我是以隐藏方式打开一个窗口程序,想在挂起10秒后,找到该窗口句柄,然后再显示该窗口,下面是回调函数
//===================
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM param)
{
DWORD dwID ;
GetWindowThreadProcessId(hwnd, &dwID);
if (dwID == (DWORD)param) //已经执行到这里,找到了匹配的句柄
{
HWND hwndParent=hwnd;
if (::ShowWindow(hwndParent,SW_SHOW))//但是这里无法执行成功,运行后显示”显示失败”
{
AfxMessageBox("显示成功!");
}else{
AfxMessageBox("显示失败");
}
return false;
}
return false;
}
//我试过反过来,CreateProcess时不隐藏,然后在回调函数中隐藏窗口,还是执行不成功.
请哪位高人指点下小妹!谢谢啦!