C#实现进程监视并启动进程

  • FORM1代码
  • program代码

FORM1代码

下面展示代码

using System;
using System.Windows.Forms;
using System.Diagnostics;//引入Process 类
using System.IO;namespace 监测自启动
{public partial class Form1 : Form{private Process[] MyProcesses=null;//需要监控的程序名,该方法带出该程序所有用到的进程 private string path=System.Windows.Forms.Application.StartupPath;private string text=null;private void readconfig(){StreamReader file = new System.IO.StreamReader(path +" \\程序名.txt", System.Text.Encoding.GetEncoding("gb2312"));text = file.ReadLine();}public Form1(){InitializeComponent();readconfig();this.Visible = false;}private void timer1_Tick(object sender, EventArgs e){this.Visible = false;MyProcesses = Process.GetProcessesByName(text);//需要监控的程序名,该方法带出该程序所有用到的进程 if (MyProcesses.Length == 0)//程序未运行,启动程序,并等待5000ms{try{Process.Start(@path + " \\" + text + ".exe");// 路径中带有反斜杠  要加 “@”System.Threading.Thread.Sleep(2000);}catch (Exception ex){this.timer1.Enabled = false;MessageBox.Show(ex.ToString());this.Close();}}}}
}

program代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;namespace 监测自启动
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);//获取指定的进程名Process[] prProcesses =System.Diagnostics.Process.GetProcessesByName(Application.ProductName);//如果获取的进程名多于一个if (prProcesses.Length > 1){try{//关闭全部进程foreach (Process thisproc in prProcesses){thisproc.Kill();}Restart();}catch (Exception Exc){MessageBox.Show(Exc.Message);}//退出}Application.Run(new Form1());}private static void Restart(){Thread thtmp = new Thread(new ParameterizedThreadStart(run));object appName = Application.ExecutablePath;Thread.Sleep(1000);thtmp.Start(appName);}private static void run(object obj){Process ps = new Process();ps.StartInfo.FileName = obj.ToString();ps.Start();}}
}

VS2019工程文件下载地址:https://download.csdn.net/download/A254681448/12719437

C#实现进程监视并启动进程相关推荐

  1. linux 后端的进程,linux后台启动进程

    1.tips进程与终端 父子进程 在linux系统里面,子进程由父进程fork而来,而所有的进程都是由init进程或其子进程fork而来,即init进程是所有进程的祖先. 父子进程的运行是相对独立的, ...

  2. linux如何查看DMS的进程id,​linux启动进程的方式

    linux启动进程的方式 最基础的 nohup 方式 这是最简单的方式,也是 linux 新手们很容易搞混淆的一个经典问题: command command > /dev/null comman ...

  3. Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)【转】...

    前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) idle进程由系统自动创建, 运行在内核态 idle进程其pi ...

  4. [Android]你不知道的Android进程化(2)--创建进程

    Android如何创建一个进程? 下面是简述: Zygote初始化图 (1)Android系统启动的时候会启动Zygote服务(执行ZygoteInit.java). (2)Zygote进程启动会做三 ...

  5. python守护进程进程池_Python—守护进程管理工具(Supervisor)

    一.前言简介 1.Supervisor 是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程.可以很方便的用来启动.重启.关闭进程(不仅仅是 ...

  6. 【k8s】理解Docker容器的进程管理(PID1进程(容器内kill命令无法杀死)、进程信号处理、僵尸进程)

    文章目录 概述 1. 容器的PID namespace(名空间) 2. 如何指明容器PID1进程 3. 进程信号处理 4. 孤儿进程与僵尸进程管理 5. 进程监控 6. 总结 参考 概述 简介: Do ...

  7. 利用勾子监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理

    钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统.每当特定     的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得     到控制权.这时钩子函数即可以加工处理 ...

  8. Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型

    1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...

  9. 一种解决启动进程传递参数过长的方法

    工作中,QA同学在测试我们程序的时候,发现在XP下,我们的A进程无法启动我们的B进程.而在Win7 64bit系统下功能正常.RD同学调试后,发现我们A进程中使用ShellExcute去启动了B进程( ...

最新文章

  1. Spring Cloud第十三篇: 断路器聚合监控(Hystrix Turbine)
  2. eNSP中浮动路由的配置
  3. mysql show tables_mysql — show tables的结果不一定准确 | 学步园
  4. php mysql切换版本5.7_phpstudy 升级 MySQL版本到MySQL5.7
  5. hexo在git上搭建个人博客
  6. linux中的TC(TrafficControl)详细说明
  7. 如何给服务器设置邮件警报。
  8. 线性基的一些基础模版
  9. Android环境搭建配置问题(ZT)
  10. IT人跨界:开了咖啡店却从没想过赚钱
  11. 直播活动策划方案怎么做
  12. BottomNavigationView+ViewPager+Fragment 底部导航按钮
  13. java类为什么要序列化_Java 中的类为什么要实现序列化呢
  14. 为什么网站要使用手机验证码?
  15. 学习记录609@python实现数据样本的过采样与欠采样
  16. 在网上开店有哪些好处?最多可以开几个?
  17. 三八节买什么数码好物?三八女神节实用不吃灰的数码好物推荐
  18. 远程访问服务器并登录LPAR,远程访问HMC方法之 SSH
  19. Android将死,Web OS才是王道——通过Google Chrome OS看Android
  20. 【ansys workbench】8.刚体平移和弱弹簧

热门文章

  1. 小米手机自动关机问题
  2. 核心岗位流失怎么办?
  3. Java基础(五)-类的特性
  4. 计算机语言送祝福,用计算机语言祝福大家新年快乐!
  5. 我的CET-6准备之路(每天更新中...)
  6. SkyWalking 9.X 入门保姆教程
  7. 数据生成器Bogus的使用以及基于声明的扩展
  8. mysql取出的emoji表情是乱码_解决MySQL emoji表情乱码问题
  9. object的部分属性和方法 + 逗号操作符 + label语句 + with + switch + 参数 + typeof和instanceof检测类型 -- 大一下第十五周
  10. 感恩的话语,不如用心的产品