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文件加入到资源文件中,如何进行调用?