有一个现成的wqv.exe的程序,这个程序功能是以只读的方式去打开txt格式的文本。现在我需要在我的对话框中添加一个"帮助"按钮,当我点击该按钮时,直接用wqv.exe来浏览hlp.txt(wqv.exe的路径是f:\wqv.exe   hlp.txt的路径是f:\hlp.txt)
请问我能否在帮助按钮中通过CreateProcess这个函数去实现该功能,如果不行请问有什么方法?如何可以,麻烦给出
CreateProcess函数参数的具体内容。
上次我请教过,有人说下面的可以实现,但我试过啦,不行
         SECURITY_ATTRIBUTES ProcAttr;
STARTUPINFO si; //一些必备参数设置
memset(&si, 0, sizeof(STARTUPINFO)); 
si.cb = sizeof(STARTUPINFO); 
si.dwFlags = STARTF_USESHOWWINDOW; 
ProcAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
ProcAttr.lpSecurityDescriptor = NULL;
//si.wShowWindow = SW_HIDE; 
PROCESS_INFORMATION pi;  //必备参数设置结束
CreateProcess("f:\\wqv.exe", "f:\\hlp.txt", &ProcAttr, NULL, FALSE,
NORMAL_PRIORITY_CLASS , NULL, NULL, &si, &pi);
WaitForSingleObject(pi.hProcess, INFINITE); //等待进程结束请高手指点,谢谢

解决方案 »

  1.   

    你需要在你的wqv.exe项目中,获取argv参数,并分析argv参数。
    CreateProcess中的第二个参数,会传入main函数的argv变量。
    如果是mfc项目,则会传入CWinApp::m_lpCmdLine变量
      

  2.   

    晕,我这样改了,行了
    CreateProcess(NULL,"f:\\wqv.exe f:\\hlp.txt", &ProcAttr, NULL, FALSE, 
    NORMAL_PRIORITY_CLASS , NULL, NULL, &si, &pi);
      

  3.   

    CreateProcess的第一个参数不能为空吧?
    ls的真牛pszImageName 
    [in] Pointer to a null-terminated string that specifies the module to execute. 
    The string can specify the full path and filename of the module to execute or it can specify a partial path and filename. The lpszImageName parameter must be non-NULL and must include the module name. 
      

  4.   

    BOOL CreateProcess
      (
         LPCTSTR lpApplicationName,                    //   执行程序文件名
        LPTSTR lpCommandLine,                         //    参数行
        LPSECURITY_ATTRIBUTES lpProcessAttributes,    //   进程安全参数
        LPSECURITY_ATTRIBUTES lpThreadAttributes,     //线程安全参数
        BOOL bInheritHandles,                         //   继承标记
        DWORD dwCreationFlags,                        //     创建标记
        LPVOID lpEnvironment,                         //   环境变量
          LPCTSTR lpCurrentDirectory,                   //   运行该子进程的初始目录
        LPSTARTUPINFO lpStartupInfo,                  //   创建该子进程的相关参数
        LPPROCESS_INFORMATION lpProcessInformation   //   创建后用于被创建子进程的信息
      );lpApplicationName:为执行程序的文件名,如果在创建进程时要使用参数,则该参数可以为NULL。   
        
    lpCommandLine:为参数行,如果无参数可以为NULL,在有参数传递给进程时如下设置:
                   lpApplicationName=NULL;lpCommandLine=para,
                   例如lpCommandLine="c:\\windows\\notepad.exe   c:\\autoexec.bat"。
        
       lpProcessAttributes,lpThreadAttributes:分别描述了创建的进程和线程安全属性,如果
       使用NULL表示使用默认的安全描述。
        
       bInheritHandles:表示当前进程中的打开的句柄是否能够被创建的子进程所继承。
        
       dwCreationFlags:表示创建标记,通过该标记可以设置进程的创建状态和优先级别。
      

  5.   

    晕,我查的是wince的msdn
    实在是不好意思~~