[delphi]运行cmd命令,并取得输出字符

delphi cmd 获取命令返回(源码) 获取cmd 命令 返回并且显示 文章地址:http://blog.youkuaiyun.com/qq_14876677/article/details/51762007 立即下载
procedure CheckResult(b: Boolean);
begin
  if not b then
    raise Exception.Create(SysErrorMessage(GetLastError));
end;
 
function RunDOS(const CommandLine: string): string;
var
  HRead, HWrite: THandle;
  StartInfo: TStartupInfo;
  ProceInfo: TProcessInformation;
  b: Boolean;
  sa: TSecurityAttributes;
  inS: THandleStream;
  sRet: TStrings;
begin
  Result := '';
  FillChar(sa, sizeof(sa), 0);
//设置允许继承,否则在NT和2000下无法取得输出结果
  sa.nLength := sizeof(sa);
  sa.bInheritHandle := True;
  sa.lpSecurityDescriptor := nil;
  b := CreatePipe(HRead, HWrite, @sa, 0);
  CheckResult(b);
 
  FillChar(StartInfo, SizeOf(StartInfo), 0);
  StartInfo.cb := SizeOf(StartInfo);
  StartInfo.wShowWindow := SW_HIDE;
//使用指定的句柄作为标准输入输出的文件句柄,使用指定的显示方式
  StartInfo.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
  StartInfo.hStdError := HWrite;
  StartInfo.hStdInput := GetStdHandle(STD_INPUT_HANDLE); //HRead;
  StartInfo.hStdOutput := HWrite;
 
  b := CreateProcess(nil, //lpApplicationName: PChar
    PChar(CommandLine), //lpCommandLine: PChar
    nil, //lpProcessAttributes: PSecurityAttributes
    nil, //lpThreadAttributes: PSecurityAttributes
    True, //bInheritHandles: BOOL
    CREATE_NEW_CONSOLE,
    nil,
    nil,
    StartInfo,
    ProceInfo);
 
  CheckResult(b);
  WaitForSingleObject(ProceInfo.hProcess, INFINITE);
 
  inS := THandleStream.Create(HRead);
  if inS.Size > 0 then
  begin
    sRet := TStringList.Create;
    sRet.LoadFromStream(inS);
    Result := sRet.Text;
    sRet.Free;
  end;
  inS.Free;
 
  CloseHandle(HRead);
  CloseHandle(HWrite);
end;


演示:

memo1.text := RunDOS('ping www.baidu.com');


Delphi7实现管道方式操作控制台 用Delphi7编写的利用管道技术操作控制的程序。通过这种方式可以实现在常规窗口下实现cmd.exe的所有功能。比如执行一些Dos指令。 立即下载

相关推荐

delphi调用bat cmd文件程序示例

delphi调用bat cmd文件程序示例 源程序,源码,本程序用来制作Windows下的Apache + PHP + MySQL + Zend + phpMyAdmin 的绿色环境套件的控制。真正的执行文件在cmd文件夹下。

DELPHI7执行dos命令并等待完成再执行面的语句

DELPHI7执行dos命令并等待完成再执行面的语句 2006-12-06 procedure TForm1.Button4Click(Sender: TObject); var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin //ShowMessage('Ready to la

wozengcong的专栏 4966

差分运放电路输出电压偏置设计解析

差分运算放大电路是信号处理中的基础模块,通过差分对管结构实现共模抑制与差模放大。其核心原理基于运放的虚短虚断特性,当电阻网络满足对称条件时,输出电压与输入差分成正比。在工业测量系统中,由于ADC通常仅支持正电压输入,需要通过偏置电路将双极性信号平移至正电压范围。典型设计采用精密基准电压源和匹配电阻网络,既保持信号完整性又满足系统接口要求。本文以-100V高压测量为例,详细解析了分压网络设计、参考电压选取以及电阻匹配等关键技术要点,为传感器接口电路设计提供实践参考。

weixin_35750747的博客 470

Delphi 执行Cmd下的命令

uses ShellAPI; var Command :String = 'dir c:'; begin ShellExecute(Handle,nil,'cmd.exe',pchar(command),nil,SW_SHOW); end.

IT男也疯狂 5275

FPGA加速SNN实现MNIST手写数字识别的实践与优化

脉冲神经网络(SNN)作为第三代神经网络模型,采用生物启发的脉冲事件驱动机制,在处理时序信号时具有天然能效优势。其核心原理是通过神经元仅在接收足够输入脉冲时激活的稀疏特性,大幅降低计算能耗。在FPGA硬件加速领域,SNN通过量化优化、硬件友好型神经元模型设计等关键技术,可在边缘计算场景实现超高能效比。本文以MNIST手写数字识别为案例,详细解析了从6bit量化策略到双缓冲流水线设计的完整优化路径,最终在Xilinx Kintex-7平台实现97.54%识别准确率的同时,功耗仅231mW,能效比达81,712

weixin_30417487的博客 529

字节跳动高频111道核心前端面试题解析,web开发增强

但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。自定义指令(v-check、v-focus)的方法有哪些?v-model是什么?

2401_84094620的博客 1200

delphi 获取cmd命令返回并显示(笔记)

先新建一个工程。添加控件 Timer1  //用于获取命令输入后的返回信息 Edit1   //用于输入命令 Memo1   //用于显示 如下图: 我们用CreateProcess函数来创建一个cmd进程,如下   //创建cmd 进程   并且执行 edit1.text  命令   CreateProcess(nil, PChar(edit

qq_14876677的专栏 6213

以太网硬件核心:MAC、PHY、MII与交换机原理与实战排查

计算机网络通信的基础依赖于一套完整的硬件协议栈。在OSI模型中,数据链路层和物理层是实现设备间可靠、高效数据传输的基石。其核心原理在于将上层数据包封装成帧,并通过特定的介质访问控制与物理信号转换机制进行传输。这一过程的技术价值在于为上层应用提供了透明、稳定的通信信道,是互联网和所有局域网通信的物理承载。在嵌入式系统、网络设备开发及运维等应用场景中,深入理解底层硬件交互至关重要。本文将聚焦于以太网硬件的两大核心组件:负责逻辑成帧与流量控制的MAC控制器,以及负责数模转换与链路协商的PHY芯片。它们通过MII、

dgqvhtlwq472235338的博客 423

XE版本 运行cmd命令,并取得输出字符

procedure CheckResult(b: Boolean); begin if not b then raise Exception.Create(SysErrorMessage(GetLastError)); end; function RunDOS(const CommandLine: string): string; var HRead, HWrite: THand

小祝的专栏 792

手把手教你用Kali+字典爆破WiFi密码:从抓包到破解的完整流程

本文提供了一份详尽的无线网络渗透测试实战指南,重点讲解如何使用Kali Linux和Aircrack-ng套件进行WiFi安全评估。内容涵盖从硬件选型(如RTL8812AU网卡)、驱动配置、监听模式设置,到使用airodump-ng扫描抓包、捕获WPA握手包,以及利用字典进行离线破解的完整流程。同时强调了在授权环境下进行安全测试的重要性,并给出了相应的网络加固建议。

weixin_28568819的博客 1675

【XSRP软件无线电】基于软件无线电平台的FM数字接收系统设计(含有完整工程资料获取链接)

随着无线通信技术的快速发展,软件无线电(Software Defined Radio, SDR)作为一种新兴的无线通信技术,逐渐成为研究和应用的热点。传统的无线接收机通常依赖于专用硬件实现其功能,灵活性和可扩展性有限。相较之下,软件无线电利用软件来实现信号处理和调制解调功能,能够适应多种频率和调制方式,使无线通信系统更加灵活和高效。在FM(频率调制)广播中,数字接收技术的应用不仅提高了信号的抗干扰能力,还能提供更好的音质和更多的附加信息(如广播电台名称、节目内容等)。

嵌入式技术开发 1367

delphi7下运行CMD命令并获取输出

procedure CheckResult(b: Boolean); begin if not b then raise Exception.Create(SysErrorMessage(GetLastError)); end; function RunDOS(const CommandLine: string): string; var HRead, HWrite: THa

tomyjohn的专栏 6583

Arduino ESP32S3 基础入门教学大纲

ESP32环境、Arduino

追梦 3546

delphi调用cmd的两种方法

delphi调用cmd的两种方法2008年10月01日 星期三 12:221vars:string;begins:=cmd.exe /c +edit1.Text+ >c:/1.txt;winexec(pchar(s),sw_hide);sleep(2000);memo1.Lines.LoadFromFile(c:/1.txt);2shellexecute(han

『罾心製作·娟儿·Delphi·家园』 6687

【红绿灯识别】基于计算机视觉实现道路信号灯检测识别系统附Matlab代码

随着自动驾驶技术的快速发展,对道路交通信号灯的检测识别技术也提出了更高的要求。本文提出了一种基于计算机视觉的道路信号灯检测识别系统,该系统能够准确地检测和识别道路交通信号灯,并输出信号灯的颜色信息。该系统采用深度学习方法,利用卷积神经网络(CNN)对道路交通信号灯进行检测和识别。实验结果表明,该系统能够在复杂的环境中准确地检测和识别道路交通信号灯,具有较高的实用价值。道路交通信号灯是道路交通管理的重要组成部分,它能够有效地组织交通,提高道路通行效率,保障交通安全。

qq_59747472的博客 340

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

delphi 在线程中运行控制台命令(console)

在编程开发的时候,我们时常会调用windows本身的功能,如:检测网络通断,连接无线wifi等。 虽然,用 windows api 操作可以完美地完成这些操作,但是,函数参数太难了。令人望而生畏,不是普通开发者能办到的。 但是,我们可以用一种变通的方法,来解决这个问题,就是使用控制台命令行,如 ping , netsh 等。 我在网络上,搜索到了delphi调用命令行,并返回接收返回的结果(...

weixin_30362083的博客 626

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Delphi】一个可以不断执行命令、能读取命令输出而且隐藏的Console类[更新:允许实时输出]

unit uConsole; interface uses {$IF CompilerVersion <= 22} Classes, Windows, Messages, SysUtils, Variants, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,...

BlueStorm的博客 1412

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

cmd获取java版本_Delphi 调用cmd获取java 版本号

unit Unit1;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs;typeTForm1 = class(TForm)procedure FormCrea...

weixin_35779047的博客 199

CreateProcess 执行CMD命令,并重定向输出

1、 参考网址:http://www.cnblogs.com/cnarg/archive/2011/02/20/1959292.html 1 function TfrmMain.ExecDosCmd :boolean; 2 var sa :SECURITY_ATTRIBUTES; 3 si :STARTUPINFO; 4 pi :PROCESS_INFORM...

weixin_34202952的博客 1280

Delphi命令行输出组件DOSCommand及Widnows 命令解释使用说明

项目地址:https://github.com/TurboPack/DOSCommand TurboPack DOSCommand Table of contents 1. Introduction 2. Package names 3. Installation 4. License ===========================================

编程小战 3868

Delphi如何把DOS命令显示到文本框里

Delphi执行DOS命令显示到文本框(TMemo) 2007-11-24 22:03 原文来自: 【100脚本网  http://www.pc100.net 】 procedure CmdExecAndView(FileName: string; memo: TMemo); procedure _AddInfo(mmInfo:TMe

shao9900的专栏 1540

Delphi2009 调用Dos命令的方法

方法如下: function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string; var SA: TSecurityAttributes; SI: TStartupInfo; PI: TProcessInformation; StdOutPipeRead, StdOutPipeWrite: THand...

zxl_1996的博客 565
上一篇: [delphi]调用外部程序并等待其运行结束
下一篇: [web服务器]APACHE日志child pid XXXXXX exit signal Segmentation fault (11)解决
怪才
博客等级 码龄18年 30粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值