为什么窗口切换不了呢?急。。。。
程序的功能是打开4个ie,通过按钮1切换到ie1,按钮2切换到ie2。。。。
1。打开ie1。
ie2,ie3,ie4,用同样方法打开
void CIEChange1Dlg::OnOpenIE()
{
STARTUPINFO s1;
ZeroMemory( &s1, sizeof(s1) );
s1.cb = sizeof(s1);
ZeroMemory( &p1, sizeof(p1) );
CreateProcess( NULL, "C:\\Program Files\\Internet Explorer\\IEXPLORE.exe", NULL,NULL, FALSE, 0, NULL, NULL, &s1, &p1);
}
2。遍历所有的窗口
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
DWORD dwpid;
GetWindowThreadProcessId(hwnd, &dwpid);
LPPROCESS_INFORMATION pInfo = (LPPROCESS_INFORMATION)lParam;
if(dwpid == pInfo->dwProcessId)
{
pInfo->hProcess = hwnd;
return FALSE;
}
return TRUE;
}
3。返回窗口句柄
HWND GetProcessMainWnd(DWORD dwpid)
{
PROCESS_INFORMATION wi;
wi.dwProcessId = dwpid;
wi.hProcess = NULL;
EnumWindows(EnumWindowsProc,(LPARAM)&wi);
return HWND(wi.hProcess);
}
4。激活ie窗口
void CIEChange1Dlg::OnButton2()
{
::SetActiveWindow(GetProcessMainWnd(p1.dwProcessId));
}
为什么到弟4步,老实不能激活窗口,从而实现窗口的切换呢??