在delphi中捕获shellexecute()响应

时间:2019-04-26 10:31:08

标签: delphi shellexecute perfmon

我正在Delphi中使用ShellExecuteExW执行Logman.exe。我们如何捕获此函数的结果

  Params    :=    'START '+<<DATA COLLECTOR SET NAME>>+
                  ' -s '+ MachineIP;
                  ' -u '+ UserName.QuotedString('"')+' 
                        '+Password.QuotedString('"');

  ZeroMemory(@ShellExecuteInfo, SizeOf(ShellExecuteInfo));
  ShellExecuteInfo.cbSize := SizeOf(TShellExecuteInfo);
  ShellExecuteInfo.fMask := SEE_MASK_NOCLOSEPROCESS;

  ShellExecuteInfo.Wnd := 0;
  ShellExecuteInfo.lpVerb := nil;
  ShellExecuteInfo.lpFile := Pchar('LOGMAN.EXE');
  ShellExecuteInfo.lpParameters := PChar(StartParam);
  ShellExecuteInfo.lpDirectory := nil;
  ShellExecuteInfo.nShow := SW_HIDE;

  ShellExecuteExW(@ShellExecuteInfo);

如果我们从命令提示符处执行START命令,则会导致   以下字符串

  

“命令成功完成”

我需要在上面的代码中捕获此字符串。

如果我们在命令中使用'>'运算符,则可以将输出写入   文本文件。要读取此字符串,我必须在代码中加载文件   这在我的项目中是不可接受的。

请分享您的想法以得到上面产生的字符串   通过使用任何Delphi程序ShellExecuteExW()程序。

0 个答案:

没有答案