第二个问题,CreateProcess参数中最后一个LPPROCESS_INFORMATION lpProcessInformation,执行后包含Process的信息,里面就有DWORD dwProcessId,看看msdn吧。

解决方案 »

  1.   

    试试下面一段代码:
    看看你能不能体会到PROCESSID
    void CCrePDlg::OnLookprocess() 
    {
    // TODO: Add your control notification handler code here
    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    memset(&si,0,sizeof(STARTUPINFO ));
    si.cb =sizeof(STARTUPINFO );
    CString s;
    CHAR *buf=new CHAR[255];
    ::GetSystemDirectory (buf,0X100);
    strcat((char*)buf,"\\notepad.exe");
    ::CreateProcess (buf,NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
    delete buf;
    HANDLE hProcess;
    hProcess=OpenProcess(SYNCHRONIZE|PROCESS_ALL_ACCESS,
    TRUE,
    pi.dwProcessId );
    DWORD dwReason;
    dwReason=WaitForSingleObject (hProcess,INFINITE);
    MessageBox("end");
    }