热议:DELPHI_CreatePipe 方法读取一个DOS窗口返回的数值
想必现在有很多小伙伴对于DELPHI CreatePipe 方法读取一个DOS窗口返回的数值。方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于DELPHI CreatePipe 方法读取一个DOS窗口返回的数值。方面的知识分享给大家,希望大家会喜欢哦。
通过管道技术就可以读取到DOS窗口的返回。
(资料图片仅供参考)
写过一个单元文件可以取到,代码如下:
unit mylib;
芝士回答,版权必究线,标数未经许可,克中不得转载
interface
uses
Windows, ShellAPI;
function GetDosOutput(CommandLine: string): string;
在多日原特决术更商非技史维片始。
implementation
以行当展接取东志阶,改信节叫省候按始状。
function GetDosOutput(CommandLine: string): string;
var
SA: TSecurityAttributes;
SI: TStartupInfo;
PI: TProcessInformation;
StdOutPipeRead, StdOutPipeWrite: THandle;
WasOK: Boolean;
Buffer: array [0 .. 255] of AnsiChar;
BytesRead: Cardinal;
Handle: Boolean;
begin
Result := "";
with SA do
begin
nLength := SizeOf(SA);
bInheritHandle := True;
lpSecurityDescriptor := nil;
end;
CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0);
try
with SI do
begin
FillChar(SI, SizeOf(SI), 0);
cb := SizeOf(SI);
dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
wShowWindow := SW_HIDE;
hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don"t redirect stdin
hStdOutput := StdOutPipeWrite;
hStdError := StdOutPipeWrite;
end;
Handle := CreateProcess(nil, PChar("cmd /c " + CommandLine), nil, nil,
True, 0, nil, nil, SI, PI);
CloseHandle(StdOutPipeWrite);
if Handle then
try
repeat
WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
if BytesRead > 0 then
begin
Buffer[BytesRead] := #0;
Result := Result + Buffer;
end;
until not WasOK or (BytesRead = 0);
WaitForSingleObject(PI.hProcess, INFINITE);
finally
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
end;
finally
CloseHandle(StdOutPipeRead);
end;
end;
end.测试代码:
procedure TFormbtn1Click(Sender: TObject);
begin
mmoText:= GetDosOutput("ping
);
end;
执行效果:
本文到此结束,希望对大家有所帮助。
关键词:
您可能也感兴趣:
为您推荐
机票里面包含保险吗?飞机保险有必要买吗?
辽宁扩大缓缴社保费政策实施范围 补缴期间免收滞纳金
近十年财险业务快速发展 财产保险业风险保障水平不提升
排行
最近更新
- 热议:DELPHI_CreatePipe 方法读取一个DOS窗口返回的数值
- 上海最大的生鲜市场在哪里|全球视点
- 当前报道:做烧饼的游戏?
- 武大郎儿子名字?
- 武大郎烧饼培训哪里好? 新消息
- 武大郎卖的炊饼到底是什么?
- 大众朗逸安全性怎么样?全面揭秘紧凑型轿车安全特点
- 每日快讯!韩剧who are you_How are you Who are you
- 武大郎烧饼皮做法配方?_微头条
- 环球观察:福彩3D第2023144期逸飞道人四字真经
- 苏黔携手情意长,跨越山海著华章!江苏贵州东西部协作回眸
- 国产MPV新选择,奔腾M9国人用得起的好车
- 世界要闻:2023年6月3日山东省石油醚价格最新行情预测
- 环球百事通!上海普陀治疗胎记多少钱-胎记该怎么治疗
- 热门看点:电动汽车行业展望:2023年下半年的三件事
- 每日速讯:鸡蛋黄酒红糖生姜红枣枸杞可以一起煮吗?你好?
- 枸杞和大枣红糖熬汤水喝,有什么功效?|看热讯
- 红枣枸杞鸡蛋怎么做如何做好吃?|速读
- 当前速读:枸杞尖煎鸡蛋的做法?
- 每天早上吃一个煮鸡蛋对身体有益吗?
- 观速讯丨大金湖在哪里_关于大金湖的介绍
- 福特因起火风险将在美召回14.2万辆林肯汽车
- 【天天热闻】消息称小米汽车再换阵:前麦格纳高管黄振宇接管...
- 北京银行成为首家以受理服务机构模式接入央行数字人民币系统...
- 浩洋股份推出浪漫灯光秀
- 男子刮刮乐中25万激动到手舞足蹈 朋友:说请我们吃饭
- 世界微速讯:红薯好吃吗?还是红薯叶好吃?
- 红薯叶和红薯梗哪个好吃? 世界快播报
- 【环球新视野】番薯就是凉薯吗?怎么做好吃?
- 人参可以和黄芪当归一起煮水喝吗? 环球视点