Delphi调用bat时,如何在bat执行完成后结束这个Delphi程序 10

Delphi调用bat时,如何在bat执行完成后结束这个Delphi程序... Delphi调用bat时,如何在bat执行完成后结束这个Delphi程序 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
gcbjoy
2015-04-20 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:2164万
展开全部
那就用下面这个函数来执行你的bat吧。
function  WinExecAndWait32(FileName:String;  Visibility  :  integer):  DWORD;  
var  
        zAppName:array[0..512]  of  char;
        zCurDir:array[0..255]  of  char;
        WorkDir:String;
        StartupInfo:TStartupInfo;
        ProcessInfo:TProcessInformation;
begin
        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,  {  pointer  to  command  line  string  }
        nil,  {  pointer  to  process  security  attributes  }
        nil,  {  pointer  to  thread  security  attributes  }
        false,  {  handle  inheritance  flag  }
        CREATE_NEW_CONSOLE  or  {  creation  flags  }
        NORMAL_PRIORITY_CLASS,
        nil,  {  pointer  to  new  environment  block  }
        nil,  {  pointer  to  current  directory  name  }
        StartupInfo,  {  pointer  to  STARTUPINFO  }
        ProcessInfo  {  pointer  to  PROCESS_INF  }
        )
        then  Result  :=  $FFFFFFFF  else  begin
                WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
                GetExitCodeProcess(ProcessInfo.hProcess,Result);
        end;
end;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式