Delphi 中如何调用别的应用程序?

解决方案 »

  1.   

    三个SDK函数 winexec, shellexecute,createprocess可以使用。 WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的程序, ShellExecute较WinExex灵活一点,可以指定工作目录,下面的 Example就是直接打开 c:\temp\1.txt,而不用加栽与 txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示相应的文件内容。使用它还可以对文件进行打印,这一点功能有时候也十分有用。 ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED); CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的,下面是一个例子: STARTUPINFO stinfo; //启动窗口的信息 PROCESSINFO procinfo; //进程的信息 CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_CLASS,NULL,NULL, &stinfo,&procinfo);
      

  2.   

    用ShellExecute这个API函数先要Uses ShellAPI;HINSTANCE ShellExecute(    HWND hwnd, // handle to parent window
        LPCTSTR lpOperation, // pointer to string that specifies operation to perform
        LPCTSTR lpFile, // pointer to filename or folder name string
        LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters 
        LPCTSTR lpDirectory, // pointer to string that specifies default directory
        INT nShowCmd  // whether file is shown when opened
       );
      

  3.   

    Winexec()   //最简单,注意用字符串变量时要Winexec(pchar(变量));
    ShellExec() //要uses ShellApi
    CreateProcess()
    自己看一下帮助
      

  4.   

    为ShellExecute函数主要用于Win32下,功能也强大一些,故而本文只对后者进行讨论。首先,我们粗略地研究一下ShellExecute的几个参数:
    hwnd:窗体的句柄; 
    lpOperation:打开程序执行的操作,共预留有"open","explore","print"三种方式,此参数可以省略,此时将依据打开的文件(lpFile)的类型执行相应的操作,比如:如果lpFile为一文本文件,那么将会在与该文件相关联的程序中打开它; 
    lpFile:文件名; 
    lpParamerters:打开文件时所需的参数; 
    lpDirectory:文件名所在的路径,当然,一般来说,在Windows中登 
    "记记"过的程序(如WinWord)不必提供此参数; 
    nShowCmd:打开文件后程序窗体如何显示。 
    该函数的详细文档请读者朋友参阅相应帮助。其次,我们来举一个例子(以"记事本"为例): 
    procedure TForm1.OpenBtnClick(Sender:TObject); 
    begin 
    ShellExecute(handle,'open','notepad.exe',nil,nil,SW_ShowNormal); 
    end; 
      

  5.   

    用WinExec最简单,如果要运行而又不想显示出界面,就用WinExec('x.exe',SW_HIDE),否则就用WinExec('x.exe',SW_SHOW)。
      

  6.   

    WINEXEC(PCHAR('FILENAME'))
    那就直接用文件名了, 也可用相对路径
      

  7.   

    学到了好多,本来我只知道WINEXEC(可执行文件路径)一中!!