C# winform 安装服务
2024-10-13 02:41:13
一、知识点
1、安装服务
installutil HardwareScanService.exe //安装服务
sc config HardwareScanService type= interact type= own //允许服务于桌面交换
Net Start HardwareScanService //启动服务
2、卸载服务
installutil /u HardwareScanService.exe
二、程序界面
三、具体代码实现
delegate void deleAppendText(string str);
deleAppendText dat;
public Form1()
{
InitializeComponent();
dat = new deleAppendText(appendText);
}
/// <summary>
/// 批处理执行命令
/// </summary>
/// <param name="commands">命令</param>
private void ExecBatCommand(string[] commands)
{
Process pro = null;
pro = new Process();
pro.StartInfo.FileName = "cmd.exe";
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.CreateNoWindow = true;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.RedirectStandardOutput = true;
pro.StartInfo.RedirectStandardError = true;
pro.OutputDataReceived += new DataReceivedEventHandler(pro_OutputDataReceived);
pro.Start();
for (int i = ; i < commands.Length; i++)
{
pro.StandardInput.WriteLine(commands[i]);
}
pro.BeginOutputReadLine();
pro.Close(); }
批处理执行命令
void pro_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
this.BeginInvoke(dat, new object[] { e.Data });
}
}
回显调用
/// <summary>
/// 安装服务
/// </summary>
private void install()
{
ExecBatCommand(new string[] {
"installutil HardwareScanService.exe",
"sc config HardwareScanService type= interact type= own",
"Net Start HardwareScanService"
});
}
安装服务
private void uninstall()
{
ExecBatCommand(new string[] {
"installutil /u HardwareScanService.exe"
});
}
卸载服务
private void appendText(string str)
{
tb_result.Text += str + "\r\n";
//让滚动条自动滚动到最下面
tb_result.SelectionStart = tb_result.Text.Length;
tb_result.ScrollToCaret();
}
向显示窗口追加内容
最新文章
- tab事件优化-事件代理
- Java中从控制台输入数据的几种常用方法
- 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用
- Python统计学技术环境
- java 读取pdf、word、Excel文件
- 试用VSCode
- 160930、Javascript的垃圾回收机制与内存管理
- Draw a Border around any C# Winform Control
- 一路踩过的坑 php
- 彻底弄懂LSH之simHash算法
- Mesh.Bake Scaled Mesh PhysX CollisionData的性能问题
- java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
- docker 基于现有镜像修改后保存,上传私有仓库
- 【淡墨Unity3D Shader计划】一间 创建一个游戏场景 &;amp; 第一Shader写作
- Java 基础知识(一)
- Google Chrome谷歌/火狐/Safari浏览器开发者工具基本使用教程
- pycharm创建Flask项目,jinja自动补全,flask智能提示
- 解决 win10飞行模式 无限自动开关 无法关闭
- 从vue源码看props
- EasyPR源码剖析(6):车牌判断之LBP特征
热门文章
- #pragma mark 添加分割线 及 其它类似标记 - 转
- 怎么上传自己的代码/项目到自己的github仓库上
- 显示Mysql中的所有用户
- vijos p1729 Knights
- 混沌数学之CircuitChaotic(二维离散电路混沌系统)
- C#调用C++ memcpy实现各种参数类型的内存拷贝 VS marshal.copy的实现 效率对比
- 服务 Service 清单文件中可设置的属性
- 7 个 Bootstrap 在线编辑器用于快速开发响应式网站
- linux系统下调度数据库类型资源库中的kettle job
- VS2008:Failed to return new Code Element