我的代码如下:
PROCESS_INFORMATION piAbc;
int fRet=CreateProcess(TEXT("\\windows\\abc.exe"),
NULL,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
NULL,
&(this->piAbc));
现在我怎么得到Abc的句柄呢?
PROCESS_INFORMATION piAbc;
int fRet=CreateProcess(TEXT("\\windows\\abc.exe"),
NULL,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
NULL,
&(this->piAbc));
现在我怎么得到Abc的句柄呢?
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION, *LPPROCESS_INFORMATION;我要用到MoveWindow()函数,所以需要进程的hWnd是HWND类型的,而这里只见到HANDLE类型呀,没有HWND???
CreateProcess(...,&processInfo) ;
WaitForInputIdle(processInfo.hProcess,INFINITE) ;EnumWindows(...) ;找到窗口后再大化窗口.MoveWindow(..) ;
//////////////////////
//下面是枚举窗口过程
BOOL __stdcall EnumWindowProc(HWND hWnd,LPARAM lParam)
{
DWORD dwProcessId = NULL ;
GetWindowThreadProcessId(hWnd,dwProcessId); //在这里根据processInfo.dwProcessId找到目标窗口。
if(dwProcessId == processInfo.dwProcessId)
{
*lParam = (LPARAM)hWnd ;
return FALSE;
}
return TRUE ;
}