typedef struct tagWNDINFO
02.
{
03.
DWORD dwProcessId;
04.
HWND hWnd;
05.
}WNDINFO, *LPWNDINFO;
06.
STARTUPINFO StartInfo;
07.
memset(&StartInfo,0,sizeof(STARTUPINFO));
08.
StartInfo.cb = sizeof(STARTUPINFO);
09.
PROCESS_INFORMATION pinfo;
10.
BOOL bRet=CreateProcess(
11.
NULL,
12.
"notepad.exe",
13.
NULL,
14.
NULL,
15.
FALSE,
16.
NORMAL_PRIORITY_CLASS,
17.
NULL,
18.
NULL,
19.
&StartInfo,
20.
&pinfo);
21.
if(bRet==FALSE)
22.
{
23.
AfxMessageBox("创建进程失败");
24.
}
25.
else
26.
{
27.
WaitForInputIdle(pinfo.hProcess,INFINITE);
28.
CloseHandle(pinfo.hThread);
29.
CloseHandle(pinfo.hProcess);
30.
}
31.
32.
33.
BOOL CALLBACK EnumThreadWndProc(HWND hwnd,LPARAM lParam)
34.
{
35.
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,
36.
SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW);
37.
return TRUE;
38.
}
39.
EnumThread<A class=keylink href="http://www.it165.net/os/oswin/" target=_blank>Windows</A>(pinfo.dwThreadId,EnumThreadWndProc,0);//www.it165.net枚举所有线程窗口
40.
41.
BOOL CALLBACK EnumProcessWndProc(HWND hwnd,LPARAM lParam)
42.
{
43.
DWORD dwProcessId;
44.
GetWindowThreadProcessId(hwnd,&dwProcessId);
45.
LPWNDINFO pInfo=(LPWNDINFO)lParam;
46.
if(dwProcessId==pInfo->dwProcessId)
47.
{
48.
pInfo->hWnd=hwnd;
49.
return FALSE;
50.
}
51.
return TRUE;
52.
}
53.
WNDINFO wi;
54.
wi.dwProcessId = pinfo.dwProcessId;
55.
wi.hWnd = NULL;