请各位不吝赐教!已知返回的iTask句柄怎样取到TaskID呢???
我的这种方法可行吗?或用更好的方法?

解决方案 »

  1.   

    当然不行了,你用ShellExecute启动的是另一个进程,而GetCurrentProcessID取的是
    本身的进程ID,逻辑错误嘛。
    要实现等待别的进程结束,不妨用Createprocess启动别的进程,可以获得被启动进程的句柄
    否则,手脚就要多一些了...
      

  2.   

    好像不太可能,用CreateProcess的方法试试,等待...
      

  3.   

    那用SHELLEXECUTE取不到执行程序的进程句柄吗?
      

  4.   

    The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications
    看来没有多少用处。
      

  5.   

    试试改用ShellExecuteEx函数启动进程:
    SHELLEXECUTEINFO SHExecuteInfo = 
    {   sizeof(SHELLEXECUTEINFO),
        SEE_MASK_NOCLOSEPROCESS,   //保留建立的进程句柄在hProcess成员中。
        hwnd,
        "open",
        lpFileName,
        lParameters,
        lpDirectory,
        SW_SHOWNORMAL 
    };
    ShellExecuteEx(&SHExecuteInfo);
    WaitForSingleObject(SHExecuteInfo.hProcess, INFINITE);
    CloseHandle(SHExecuteInfo.hProcess);