如何让Delphi调用外部程序并等待其

如何让Delphi调用外部程序并等待其,第1张

    uses  

        Windows,  

        SysUtils,  

        Classes,  

  租芦      ShellAPI  

    function RunAndWait(FileName: string Visibility: Integer): THandle  

    var  

        zAppName: array[0..512] of Char  

        zCurDir: array[0..255] of Char  

        WorkDir: string  

        StartupInfo: TStartupInfo  

        ProcessInfo: TProcessInformation  

    begin  

        try  

          StrPCopy(zAppName, FileName)  

          GetDir(0, WorkDir)  

          StrPCopy(zCurDir, WorkDir)  

          FillChar(StartupInfo, SizeOf(StartupInfo), #0)  

          StartupInfo.cb := SizeOf(StartupInfo)  

          StartupInfo.dwFlags := STARTF_USESHOWWINDOW  

          StartupInfo.wShowWindow := Visibility  

          if not CreateProcess(nil, zAppName, nil, nil, false, Create_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then  游塌

          begin  

            result := 0  

            Exit  

          end  

          else  

  神型圆        begin  

            WaitForSingleObject(ProcessInfo.hProcess, INFINITE)  

            GetExitCodeProcess(ProcessInfo.hProcess, result)  

          end  

        finally  

        end  

    end

Delphi 启动外部程序,,推荐使用 ShellExecute ,不推荐winexec!

winexec是16位代码,,有时会被杀软误报。。;另外winexec不能指定默认目录,有时启动的外部程序会出错!

在使用,ShellExecute 启动外部程序的时候,,如果这个外部程序不是和你的程序在同一个目录里,一定要指定一下,默认目录。例如,你启动的是 c:\windows\2.exe ,加上他的默认目录,如下:

ShellExecute(Handle,'open','拆好c:\windows\2.exe', nil, {这里写2.exe的默认目录}'旅中铅c:\windows\', SW_NORMAL)

你的意思是不是,象你这样写,就是先启动hypmain.exe 完以后才启动的2.exe!你想在同一时间启动这两个程序!

其实你就直接写成如下的,,时间间隔也就是几毫秒而已:

procedure TForm1.XPButton2Click(Sender: TObject)

begin

if (suiedit1.Text='1234'培纯)and(suiedit2.Text='1234') then

begin

ShellExecute(self.Handle,'open','internet\hypmain.exe', nil, nil, SW_NORMAL)

ShellExecute(self.Handle,'open','c:\windows\2.exe ', nil, nil, SW_NORMAL)

end

else

begin

Showmessage('输入的用户名或密码错误!')

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12325791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存