MFC CreateProcess创建可控制窗口的进程

typedef   struct   tagWNDINFO
02. {
03.     DWORD  dwProcessId;//进程ID
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", //参数(当exeName为NULL时,可将命令放入参数前)
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;
56. Enum<A class=keylink href="http://www.it165.net/os/oswin/" target=_blank>Windows</A>(EnumProcessWndProc,(LPARAM)&wi);//枚举进程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值