以前我在程序中曾经使用过的,这两个函数可以启动另一个程序(.exe),忘了怎么用,急等告知!!!

解决方案 »

  1.   

    最好使用CreateProcess    STARTUPINFO si;
        PROCESS_INFORMATION pi;    ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        si.wShowWindow = SW_HIDE;
        ZeroMemory( &pi, sizeof(pi) );
        // Start the child process. 
        if( !CreateProcess( NULL, // No module name (use command line). 
            strArgs.GetBuffer(strArgs.GetLength()), // Command line. 
            NULL,             // Process handle not inheritable. 
            NULL,             // Thread handle not inheritable. 
            FALSE,            // Set handle inheritance to FALSE. 
            0,                // No creation flags. 
            NULL,             // Use parent's environment block. 
            NULL,             // Use parent's starting directory. 
            &si,              // Pointer to STARTUPINFO structure.
            &pi )             // Pointer to PROCESS_INFORMATION structure.
            ) 
        {
            return FALSE;
        }    // Wait until child process exits.
        WaitForSingleObject( pi.hProcess, INFINITE );
      

  2.   

    三个SDK函数 winexec, shellexecute,createprocess可以使用。 
    WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值
    得说一下,比如泥用 SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的程序,就是
    Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。
    ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的 Example就是直接
    打开 c:\temp\1.txt,而不用加栽与 txt文件关联的应用程序,很多安装程序完成后
    都会打开一个窗口,来显示Readme or Faq,偶猜就是这么作的啦. 
    ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED); 
    CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指
    定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example: 
    STARTUPINFO stinfo; //启动窗口的信息 
    PROCESSINFO procinfo; //进程的信息 
    CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_ 
    CLASS,NULL,NULL, &stinfo,&procinfo); 
      

  3.   

    ShellExecute(0, "open", "c:\\1.exe", "", "", SW_SHOW );
      

  4.   

    system和Exec如何用? 比如
    System("dir")
    System("cls");
    就是输入命令
      

  5.   

    System 其实是调用了cmd命令吧
      

  6.   

    谢谢大家,我还有个问题:用什么函数可以将一个文件以某一种方式打开,如用写字板,word等的
      

  7.   

    RichEdit控件最多能显示多大的文本内容?我的好像超过几兆就不行了
      

  8.   

    ShellExecute(NULL,"open","wordpad.exe","temp.txt",NULL,SW_SHOW);可以了