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;