Delphi X执行shell命令,并获取返回结果
话不多说,我们上代码; 建议你把以下代码抄到线程里面运行。
uses
System.Classes, Winapi.Windows, System.SysUtils;
function RunDosCommand2(Command: string): string;
const
//预防返回量大,我们设置4096个字节
DEF_OUTPUT_BUFSIZE = 4096;
var
hReadPipe: THandle;
hWritePipe: THandle;
SI: TStartUpInfo;
PI: TProcessInformation;
SA: TSecurityAttributes;
BytesRead: DWORD;
Dest : array[0..DEF_OUTPUT_BUFSIZE - 1] of byte;
CmdLine : array[0..512] of byte;
Avail, ExitCode, wrResult: DWORD;
osVer: TOSVERSIONINFO;
//tmpstr: AnsiString;
tmpstr2 :AnsiString;
sResult :AnsiString;
begin
osVer.dwOSVersionInfoSize := Sizeof(TOSVERSIONINFO);
GetVersionEX(osVer);
if osVer.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
SA.nLength := SizeOf(SA);
SA.lpSecurityDescriptor := nil; //@SD;
SA.bInheritHandle := True;
CreatePipe(hReadPipe, hWritePipe, @SA,