delphi 调用exe文件后怎么获得执行结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 调用exe文件后怎么获得执行结果相关的知识,希望对你有一定的参考价值。

参考技术A 最佳方案是用管道接收 另一个进程的输出

但有时图省事可以用如下方式

命令行下执行你的 .exe程序 myexefile.exe >> C:\out.txt

执行结果就保存在 C:\out.txt中了

在Delphi中如此调用 然后就可以到你指定的文件中找结果了用TStringList 加载个txt文件 简单又方便本回答被提问者和网友采纳
参考技术B 要得到什么样的结果:1、程序返回码;2、输出到屏幕的文本;3、写到文件中的数据。等等

你要获取的结果是哪种?追问

能不能分别解释下啊

delphi执行cmd

要求
一个delphi窗体form1
上面有一个edit1控件
两个Button1
一个是启动
一个是关闭

要求,当按下启动时
就会执行目录下的a.bat
并把结果实时返回到edit1中

当按下关闭时,强行结束a.bat

启动按钮:
procedure TForm1.btn1Click ( Sender: TObject ) ;
var
nResult : Integer ;//定义运行结果变量
begin
nResult := WinExec ( \'c:\\a.bat\' , 0 ) ;//\'\'内的是执行外部命令完整路径,0参数,表明不显示运行窗口,你可以改成1试试效果。
if nResult > 31 then //返回结果大于31表明成功运行
ShowMessage ( \'成功运行!\' )
else
if nResult = 0 then
ShowMessage ( \'超出系统内存资源!\' )
else
if nResult = ERROR_BAD_FORMAT then //
ShowMessage ( \'不是合法的Win32程序\' )
else
if nResult = ERROR_FILE_NOT_FOUND then
ShowMessage ( \'指定的文件未找到\' )
else
if nResult = ERROR_BAD_FORMAT then
ShowMessage ( \'不是合法的Win32程序\' )
else
ShowMessage ( \'未知错误!\' ) ;
end ;
结束按钮:
AFileName指为cmd.exe,bat文件是由cmd.exe执行的
先Uses TLHelp32;
procedure EndProcess(AFileName: string);
const
PROCESS_TERMINATE=$0001;
var
ExeFileName: String;
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
ExeFileName := AFileName;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0);
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;
edit1?不知道你要返回什么,另外目录什么的,自己再改改吧
参考技术A 可以直接调用cmd啊
start
参考技术B dir 写在一个bat文件里
ShellExecute打开bat文件就可以了
参考技术C 要用到管道吧 参考技术D shell ()

以上是关于delphi 调用exe文件后怎么获得执行结果的主要内容,如果未能解决你的问题,请参考以下文章

在Delphi如何将exe文件加入到资源文件中,如何进行调用?

delphi调用外部程序~~~~~~~~~~~~

DELPHI怎么打包成EXE文件的?

求教在delphi中,如何把一个exe做为res加入到dll中,并在运行时生成exe文件执行

delphi 如何把其他exe文件加入dll中,并调用

delphi 调用exe 无输出