voith项目配置服务程序
项目需求:
1、程序可以最小化到任务栏
2、tpms标签和限速标签同时只能选择一个,并且要通过button确定修改
3、在程序中需要显示SequenceScanner1.0服务的运行状态
4、能够打开和关闭SequenceScanner1.0服务
5、在程序中建立一个链接,指向配置文件的地址
开发环境:Visual Studio2015基于.NET Framework3.5
实现步骤:
1、以管理员权限,新建一个winform项目,
2、设计程序界面
1、以管理员权限,新建一个winform项目,
2、设计程序界面

3、实现程序缩小化至任务栏小图标功能
A、拖动控件notifyIcon到设计界面,修改窗体关闭事件
private void Form1_FormClosing(object sender, FormClosingEventArgs e) //程序关闭时最小化至任务栏{if(e.CloseReason==CloseReason.UserClosing) //当用户点击右上角X按钮或者Alt+F4时{e.Cancel = true;this.ShowInTaskbar = false; //判断是否显示窗体this.myIcon.Icon = this.Icon; //显示任务栏小图标this.Hide(); //隐藏icon控件}}
B、修改notifyIcon的单击事件
private void myIcon_MouseClick(object sender, MouseEventArgs e) //单击任务栏图标事件{if(e.Button==MouseButtons.Right) //如果鼠标右击任务栏图标{myMenu.Show(); //展示选项}if(e.Button==MouseButtons.Left) //如果鼠标左击任务栏图标{this.Visible = true;this.WindowState = FormWindowState.Normal; //显示程序窗体}}
C、拖动一个ContextMenuStrip控件作为icon的右键菜单选项,其中设置一个退出选项,修改其click事件

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) //任务栏图标右击退出程序{//弹出提示框,决定是否退出,如果确定就往下执行if (MessageBox.Show("您确定要退出程序吗?", "确认退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK){this.myIcon.Visible = false; //任务栏图标消失this.Close(); //关闭窗体this.Dispose(); //释放程序使用的资源Application.Exit(); //退出程序}}
4、通过button打开配置文件地址(绝对路径下)
private void openfilepath_Click(object sender, EventArgs e){//这是绝对路径string path1 = @"C:\Windows\System32"; //地址位置System.Diagnostics.Process.Start("explorer",path1);//如有必要可添加为相对路径}
5、引用能够对服务进行调用的库

6、获取服务状态(输入服务名称)
public void CheckServerState(string ServiceName) //检测服务状态函数{ServiceController[] service = ServiceController.GetServices();bool isStart = false;bool isExite = false;for(int i=0;i<service.Length;i++){if(service[i].ServiceName.ToUpper().Equals(ServiceName.ToUpper())){isExite = true;if(service[i].Status==ServiceControllerStatus.Running){isStart = true;break;}}}if(!isExite) //服务是否存在{this.ServiceStatus.Text = ("不存在此服务");}else{if(isStart) //服务是否启动{this.ServiceStatus.Text = ("此服务已启动");}else{this.ServiceStatus.Text = ("此服务已关闭");}}}private void getServerStatus_Click(object sender, EventArgs e) //服务检测{// CheckServerState("SequenceScanner1.0"); //服务名称,不是显示名称CheckServerState("iphlpsvc"); //测试用---服务名称,不是显示名称}
7、打开服务/关闭服务(输入显示名称)
打开服务
//首先根据服务状态决定打开/关闭服务if (ServiceStatus.Text == "不存在此服务"){MessageBox.Show("此服务未存在");}if (ServiceStatus.Text == "此服务已启动"){MessageBox.Show("服务已启动");}if (ServiceStatus.Text == "此服务已关闭"){// ServiceController sc = new ServiceController("SequenceScanner1.0");ServiceController sc = new ServiceController("IP Helper"); //测试服务if(!sc.CanStop){sc.Start(); //启动服务,不传递参数sc.WaitForStatus(ServiceControllerStatus.Running); //服务当前状态ServiceStatus.Text = ("此服务已启动");}sc.Close(); //释放对该服务的控制权以及相应的资源}}
关闭服务
private void closeService_Click(object sender, EventArgs e) //关闭服务{if (ServiceStatus.Text == "不存在此服务"){MessageBox.Show("此服务未存在");}if (ServiceStatus.Text == "此服务已关闭"){MessageBox.Show("服务已关闭");}if (ServiceStatus.Text == "此服务已启动"){// ServiceController sc = new ServiceController("SequenceScanner1.0");ServiceController sc = new ServiceController("IP Helper"); //测试服务if (sc.CanStop){sc.Stop(); //停止服务sc.WaitForStatus(ServiceControllerStatus.Stopped); //服务当前状态已停止ServiceStatus.Text = ("此服务已关闭");}sc.Close(); //释放对该服务的控制权以及相应的资源}}
8、鼠标悬停在帮助按键,显示提示功能
private void help_Click(object sender, EventArgs e) //当鼠标悬停时,启动提示{ToolTip ttpSetting = new ToolTip(); //提示控件ttpSetting.InitialDelay = 50;ttpSetting.AutoPopDelay = 10 * 1000; //提示可见时间// ttpSetting.ReshowDelay = 100;ttpSetting.ShowAlways = true; //是否总显示提示窗口// ttpSetting.IsBalloon = true;ttpSetting.SetToolTip(this.help, "联系电话:18914250037"); //显示提示内容}
附件列表
voith项目配置服务程序的更多相关文章
- Project server 2016 “没有为此项目配置网站”错误处理
问题: 没有为此项目配置网站. There is no site configured for this project 解决办法: 依次点击设置>PWA设置>连接到sharepoint网 ...
- thinkphp3.22 多项目配置
1.index.php if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试 ...
- VS2010的项目配置
一直对VS的项目配置都是不怎么了解的,以前用过点,半年不用后,什么都忘记了... 下面这个是免于输入过长的引用头文件的,比如:#include “D:/C++/curl-7.37.0/libcurl/ ...
- VC项目配置基础以及快捷键(收藏)
来自http://blog.csdn.net/phunxm/article/details/5082488 一.IDE基础配置 1.字体 VC6中“Tools→Options→Format→Font” ...
- ThinkPHP多应用/项目配置技巧(使用同一配置文件)--(十六)
原文:ThinkPHP多应用/项目配置技巧(使用同一配置文件)--(十六) ThinkPHP多应用配置技巧(没有使用分组,这是通过入口文件产生的Home.Admin)----很实用! 比如:现在有Ho ...
- 理解 IntelliJ IDEA 的项目配置和Web部署
1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse ...
- 在找一份相对完整的Webpack项目配置指南么?这里有
Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...
- ASP.NET Core 项目配置 ( Startup )(转载)
原文:https://www.twle.cn/l/yufei/aspnetcore/dotnet-aspnet-startup.html 由于是个人网站,怕没了,特意复制保存,个人觉得讲的非常透彻 前 ...
- Intellij IDEA导入eclipse项目配置jdk、tomcat到浏览器正常访问
转发自:博客园---Lindp(大佬写的甚好) 以下是转发的正文 intellij idea中文资料网上比较少,对于eclipse的项目如何导入intellij idea也没有完整的说明,本人在这里整 ...
随机推荐
- 【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)
4.数据库安全基础 4.1.MSSQL 数据库角色权限 sysadmin:执行SQL Server中的任何动作 db_owner:可以执行数据库中技术所有动作的用户 public:数据库的每个合法用户 ...
- 转载-SVN常用命令
SVN(Subversion)是一个自由.开源的项目源代码版本控制工具.目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件. Subversion将文件存放在中心版本库里,这个版本 ...
- MySQL数据记录大小写敏感问题【转】
MySQL大小写敏感 字符串大小写敏感和Mysql的数据库的名字.表名字.字段名字.还有字段值有关. 1.和数据库名字.表名字.存储过程和触发器有关 为0时:表示区分大小写,使用CREATE TABL ...
- vue全面介绍--全家桶、项目实例
简介 “简单却不失优雅,小巧而不乏大匠”. 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们 ...
- vue项目中,Iview打包到生产环境时, woff 字体引用问题
出现这问题的原因是文件路径不对,与webpack有关,解决的办法为: 一.修改webpack.prod.conf.js module: { rules: utils.styleLoaders({ so ...
- 使用gradle编译安卓APK
一.安装JDK 在安装Gradle之前需要先安装JDK,由于安装的是Gradle是4.4所以需要安装JDK1.8. 之前编译总是提示如下错误就是由于先安装的jdk1.7然后安装的1.8造成的,在Gra ...
- CSS — 贝塞尔曲线(cubic-bezier)
cubic-bezier 又称三次贝塞尔,主要是为 animation 生成速度曲线的函数,规定是 cubic-bezier(<x1>, <y1>, <x2>, & ...
- shell 中>/dev/null 2>&1含义
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:“>/dev/null 2>&1” 为五 ...
- 算法笔试题整理——升级蓄水池 && 字符串数字表达式计算值 && 求旅游完所有景点需要的最少天数 && 宝箱怪
1. 小米笔试题——升级蓄水池 题目描述: 在米兔生活的二维世界中,建造蓄水池非常简单. 一个蓄水池可以用n个坐标轴上的非负整数表示,代表区间为[0-n]范围内宽度为1的墙壁的高度. 如下图1,黑色部 ...
- Linux 相关
一.WCHAN的含义 WCHAN 进程正在睡眠的内核函数名称:该函数的名称是从/root/system.map文件中获得的. 参考:解析ANDROID ps命令执行后各项参数的含义 二.查看线程 ps ...