不如用automation 来控制powerpoint

解决方案 »

  1.   

    CreateProcess会返回一个HANDLE, 可以waitforsingleobject这个handle, 下面是一个例子:BOOL ExecCmd(LPTSTR ptcCmdLine)
    {
    BOOL bSuccess; TCHAR tszCmdLine[1024];
    _tcscpy(tszCmdLine,ptcCmdLine); PROCESS_INFORMATION proc;
    STARTUPINFO start;
    memset(&start,0,sizeof(start));
    start.dwFlags = STARTF_USESHOWWINDOW;
    start.wShowWindow = SW_HIDE;
    bSuccess = CreateProcessA( NULL, tszCmdLine, NULL, NULL, FALSE, \
    NORMAL_PRIORITY_CLASS, NULL, NULL, &start, &proc);
    WaitForSingleObject(proc.hProcess, INFINITE);
    CloseHandle(proc.hProcess);
    CloseHandle(proc.hThread);
    return bSuccess;
    }
      

  2.   

    搞错了,这个waitforsingleobject是等它结束,不是等它启动完毕
    //shy
      

  3.   

    感谢您使用微软产品。您可以使用WaitForInputIdle() API,
    DWORD WaitForInputIdle(
      HANDLE hProcess,       // handle to process
      DWORD dwMilliseconds   // time-out interval
    );
    它将使您调用该API的线程挂起,直到目标进程hProcess的消息队列为空,也即完成初始化工作。关于WaitForInputIdle()更具体的帮助,请参考
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/prothred_5145.asp- 微软全球技术中心 VC技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
      

  4.   

    按照acptvc的方法搞定,多谢了先!
    masterz,你说的automation是什么?
    好像没听说过,能具体讲讲吗?