使用TDOSCommand调用Powershell脚本对进程进行操作

 列出当前运行的进程:

varPowerShellPath, ScriptPath, CommandLine: string;
beginMemo6.Clear;PowerShellPath := 'powershell.exe '; // 假设 PowerShell 可执行文件在系统环境变量中// 构造命令行参数CommandLine := 'Get-Process | Select-Object Name,Id';// 设置命令行参数DosCommand2.CommandLine := PowerShellPath + CommandLine;// 启动进程DosCommand2.Execute;

按照进程的id列出详细信息

varPowerShellPath, ScriptPath, CommandLine: string;
beginPowerShellPath := 'powershell.exe '; // 假设 PowerShell 可执行文件在系统环境变量中// 构造命令行参数CommandLine := ' Get-Process | Where-Object { $_.id -eq ' + #39 + self.Edit4.Text + #39 + '}';// 设置命令行参数DosCommand2.CommandLine := PowerShellPath + CommandLine;// 启动进程DosCommand2.Execute;
end;

按照进程的name列出详细信息

varPowerShellPath, ScriptPath, CommandLine: string;
beginPowerShellPath := 'powershell.exe '; // 假设 PowerShell 可执行文件在系统环境变量中// 构造命令行参数CommandLine := ' Get-Process | Where-Object { $_.name -eq ' + #39 + self.Edit5.Text + #39 + '}';// 设置命令行参数DosCommand2.CommandLine := PowerShellPath + CommandLine;// 启动进程DosCommand2.Execute;
end;

按照id来kill进程

varPowerShellPath, ScriptPath, CommandLine: string;
beginPowerShellPath := 'powershell.exe '; // 假设 PowerShell 可执行文件在系统环境变量中// 构造命令行参数CommandLine := ' Stop-Process -Id  ' + #39 + self.Edit6.Text + #39 + ' -ErrorAction Stop';// 设置命令行参数DosCommand2.CommandLine := PowerShellPath + CommandLine;// 启动进程DosCommand2.Execute;
end;

将返回的结果加载到stringgrid中

varProcessList: TStringList;ProcessInfo: TStringList;i, j: Integer;
begin// 获取命令行输出ProcessList := TStringList.Create;ProcessInfo := TStringList.Create;tryProcessList.Text := Memo6.Text;// 在表格中显示进程列表StringGrid1.RowCount := ProcessList.Count + 1;StringGrid1.Cells[0, 0] := '进程名称';StringGrid1.Cells[1, 0] := 'PID';for i := 0 to ProcessList.Count - 1 dobeginProcessInfo.CommaText := ProcessList[i];for j := 0 to ProcessInfo.Count - 1 doStringGrid1.Cells[j + 1, i + 1] := ProcessInfo[j];end;finallyProcessList.Free;ProcessInfo.Free;end;
end;

选择行 

procedure TForm1.StringGrid1FixedCellClick(Sender: TObject; ACol, ARow: Integer);
beginStringGrid1.Options := StringGrid1.Options + [goRowSelect];// 选择第2行(索引从0开始)StringGrid1.Row := ARow;  // 如果要选择多行,可以使用StringGrid1.Row属性的范围来选择多个连续行// 可选:将焦点设置到StringGrid以确保选择可见StringGrid1.SetFocus;
end;

 选择单元格

procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
varACol: Integer;ARow: Integer;
begin// 获取点击位置的列索引ACol := StringGrid1.MouseCoord(X, Y).X;ARow := StringGrid1.MouseCoord(X, Y).Y;// 判断是否点击了第一列(索引为0)if ACol = 0 thenbegin// 在这里执行第一列被点击时的操作StringGrid1.Options := StringGrid1.Options + [goRowSelect];// 选择第2行(索引从0开始)StringGrid1.Row := ARow;  // 如果要选择多行,可以使用StringGrid1.Row属性的范围来选择多个连续行// 可选:将焦点设置到StringGrid以确保选择可见StringGrid1.SetFocus;end;if ACol <> 0 thenbegin// 在这里执行第一列被点击时的操作StringGrid1.Options := StringGrid1.Options - [goRowSelect];选择第2行(索引从0开始)
//    StringGrid1.Row := ARow;  // 如果要选择多行,可以使用StringGrid1.Row属性的范围来选择多个连续行// 可选:将焦点设置到StringGrid以确保选择可见StringGrid1.SetFocus;end;
end;

鼠标点击时将name和id分别赋予相应的输入框,为下一步操作做准备。

procedure TForm1.StringGrid1Click(Sender: TObject);
varSelectedRow, ColIndex: Integer;CellValue: Integer;
beginSelectedRow := StringGrid1.Row; // 获取选定的行索引// 遍历选定行的所有单元格for ColIndex := 0 to StringGrid1.ColCount - 1 dobegin// 检查单元格的内容是否为数字if TryStrToInt(StringGrid1.Cells[ColIndex, SelectedRow], CellValue) thenbeginEdit4.Text := CellValue.ToString;  // 将数字内容显示在Edit组件中
//      Edit6.Text := CellValue.ToString;  // 将数字内容显示在Edit组件中Edit6.Text := CellValue.ToString;  // 将数字内容显示在Edit组件中Exit;  // 找到数字内容后退出循环end;Edit5.Text := StringGrid1.Cells[ColIndex, SelectedRow]end;// 如果未找到数字内容,将Edit组件清空Edit6.Text := '';end;

结果如下

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/80873.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-OpenCV 图像的基础操作

图像的基础操作 获取图像的像素值并修改获取图像的属性信息图像的ROI区域图像通道的拆分及合并图像扩边填充图像上的算术运算图像的加法图像的混合图像的位运算 获取图像的像素值并修改 首先读入一副图像&#xff1a; import numpy as np import cv2# 1.获取并修改像素值 # 读…

国内大模型在局部能力上已超ChatGPT

中文大模型正在后来居上&#xff0c;也必须后来居上。 数科星球原创 作者丨苑晶 编辑丨大兔 从GPT3.5彻底出圈后&#xff0c;大模型的影响力开始蜚声国际。一段时间内&#xff0c;国内科技公司可谓被ChatGPT按在地上打&#xff0c;毫无还手之力。 彼时&#xff0c;很多企业…

STM32 低功耗学习

STM32 电源系统结构介绍 电源系统&#xff1a;VDDA供电区域、VDD供电区域、1.8V供电区域、后备供电区域。 器件的工作电压&#xff08;VDD&#xff09;2.0~3.6V 为了提高转换精度&#xff0c;给模拟外设独立供电。电压调节器为1.8V供电区域供电&#xff0c;且1.8V供电区域是电…

【基于IDEA + Spark 3.4.1 + sbt 1.9.3 + Spark MLlib 构建逻辑回归鸢尾花分类预测模型】

逻辑回归进行鸢尾花分类的案例 背景说明&#xff1a; 基于IDEA Spark 3.4.1 sbt 1.9.3 Spark MLlib 构建逻辑回归鸢尾花分类预测模型&#xff0c;这是一个分类模型案例&#xff0c;通过该案例&#xff0c;可以快速了解Spark MLlib分类预测模型的使用方法。 依赖 ThisBui…

Spring学习笔记——2

Spring学习笔记——2 1、Bean的基本注解开发1.1、注解版本和Component简介1.2、Component使用1.3、Component的三个衍生注解 二、Bean依赖注入注解开发2.1、依赖注入相关注解2.2、Autowired扩展 三、非自定义Bean注解开发四、Bean配置类的注解开发五、Spring注解的解析原理六、…

W6100-EVB-PICO作为TCP Client 进行数据回环测试(五)

前言 上一章我们用W6100-EVB-PICO开发板通过DNS解析www.baidu.com&#xff08;百度域名&#xff09;成功得到其IP地址&#xff0c;那么本章我们将用我们的开发板作为客户端去连接服务器&#xff0c;并做数据回环测试&#xff1a;收到服务器发送的数据&#xff0c;并回传给服务器…

Grafana集成prometheus(2.Grafana安装)

查找镜像 docker search grafana下载指定版本 docker pull grafana/grafana:10.0.1启动容器脚本 docker run -d -p 3000:3000 --namegrafana grafana/grafana:10.0.1查看是否启动 docker ps防火墙开启 检查防火墙3000端口是否开启 默认用户及密码 admin/admin 登录 ht…

【Docker】Docker中network的概要、常用命令、网络模式以及底层ip和容器映射变化的详细讲解

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

Win7 专业版Windows time w32time服务电脑重启后老是已停止

环境&#xff1a; Win7 专业版 问题描述&#xff1a; Win7 专业版Windows time w32time服务电脑重启后老是已停止 解决方案&#xff1a; 1.检查启动Remote Procedure Call (RPC)、Remote Procedure Call (RPC) Locator&#xff0c;DCOM Server Process Launcher这三个服务是…

MYSQL常见面试题汇总

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 1、三大范式 2、DML 语句和 DDL 语句区别 3、主键和外键的区别 4、drop、delete、truncate 区别 5、基础架构 6、MyISAM 和 InnoDB 有什么区别&#xff1f; 7、推荐自增id作…

冒泡排序 简单选择排序 插入排序 快速排序

bubblesort 两个for循环&#xff0c;从最右端开始一个一个逐渐有序 #include <stdio.h> #include <string.h> #include <stdlib.h>void bubble(int *arr, int len); int main(int argc, char *argv[]) {int arr[] {1, 2, 3, 4, 5, 6, 7};int len sizeof(…

人民日报点赞!十大央媒争相报道,星恒守护民生安全出行二十年

围绕电动自行车锂电池的安全性话题&#xff0c;甚至说争议&#xff0c;在近期有了权威定调。 就在7月底&#xff0c;“民生出行&#xff0c;安全为本——电动自行车锂电安全调研座谈会”在北京人民日报社举行&#xff0c;国家监管部门、行业协会、检验院所的权威领导专家&#…

idea中如何处理飘红提示

idea中如何处理飘红提示 在写sql时&#xff0c;总是会提示各种错误 查找资料&#xff0c;大部分都是说关提示&#xff0c;这里把错误提示选择为None即可 关掉以后&#xff0c;也确实不显示任何提示了&#xff0c;但总有一种掩耳盗铃的感觉 这个sms表明明存在&#xff0c;但是还…

后台管理系统

1.1 项目概述 简易后台管理系统是一个基于Vue3ElemrntPlus的后台管理系统&#xff0c;提供了用户登录、记住密码、数据的增删改查、分页、错误信息提示等功能&#xff0c;旨在协助管理员对特定数据进行管理和操作。 没有后台对接&#xff0c;数据源为假数据。 全部代码已上传G…

交互流程图设计软件都有哪些?

交互流程图是设计行业信息流、观点流或组件流的图形代表。但是市场上应该如何选择各种交互流程图软件呢&#xff1f;如何使用高质量的交互流程图软件来绘制高端氛围的高档流程图&#xff1f;今天&#xff0c;小边给您带来了十个超级实用的交互流程图软件&#xff0c;我希望能帮…

固态硬盘 vs 机械硬盘:选择合适的存储方案

随着计算机的快速发展&#xff0c;各种硬件组件如CPU、显卡以及制作工艺都取得了长足的进步&#xff0c;但是磁盘的发展相对较为缓慢&#xff0c;这也导致了磁盘性能在一定程度上限制了计算机的整体性能。为了解决这个问题&#xff0c;固态硬盘应运而生。 那么&#xff0c;我们…

【软件工程】5 ATM系统测试

目录 5 ATM系统测试 5.1 单元测试 5.1.1 制定单元测试计划 5.1.2 设计单元测试用例 ​编辑 5.1.3 执行单元测试 5.1.4 单元测试报告 5.2 集成测试 5.2.1 制定集成测试计划 5.2.2 设计集成测试用例 5.2.3 执行集成测试 5.2.4 集成测试总结 5.3 系统测试 5.3.1 制定…

微服务间消息传递

微服务间消息传递 微服务是一种软件开发架构&#xff0c;它将一个大型应用程序拆分为一系列小型、独立的服务。每个服务都可以独立开发、部署和扩展&#xff0c;并通过轻量级的通信机制进行交互。 应用开发 common模块中包含服务提供者和服务消费者共享的内容provider模块是…

无涯教程-Perl - fcntl函数

描述 该函数是系统fcntl()函数的Perl版本。使用FILEHANDLE上的SCALAR执行FUNCTION指定的功能。 SCALAR包含函数要使用的值,或者是任何返回信息的位置。 语法 以下是此函数的简单语法- fcntl FILEHANDLE, FUNCTION, SCALAR返回值 该函数返回0,但如果fcntl()的返回值为0,则返…

十年后的web渗透(网络安全)前景如何?你想知道的都在这里

前言 web渗透是网络安全大行业里入门板块&#xff0c;就像十年前的软件&#xff0c;前景非常被看好&#xff0c;薪资也很诱人。与软件测试和前端开发只需掌握一定的编程能力不同的是&#xff0c;渗透需要掌握的知识内容较多&#xff0c;花费的时间较长&#xff0c;渗透测试掌握…