请问c#怎么做才能监控另一个C#程序有没有关闭 10

请问c#怎么做才能监控另一个C#程序有没有关闭,如果关闭的话要让这个关闭的程序在开启... 请问c#怎么做才能监控另一个C#程序有没有关闭,如果关闭的话要让这个关闭的程序在开启 展开
 我来答
sc_tiger
2010-01-24 · TA获得超过441个赞
知道答主
回答量:252
采纳率:0%
帮助的人:0
展开全部
原理大概是这样,首先确定你这个程序在系统中的进程名,然后进行比较,如果有此进程,就说明程序是开启的,如果没有此进程就说明是关闭了的,需要开启,下面是一个关闭QQ进程的例子,你只需要稍加修改就可以实现你想要的功能,由于时间原因,我就没有专门征对你这个问题去编写代码,希望这段程序对你有用,祝你成功

Process[] pro = Process.GetProcess(); //获取本机所有的进程

for (int k = 0; k < pro.Length; k++)

{

if (pro[k].ProcessName.Equals("QQ.exe"))

{

try{

pro[k].Kill();

}catch

{

MessageBox.Show("关闭进程时出错!");

}

}

if (pro[k].ProcessName.Equals("ctfmon.exe"))

{

try{

pro[k].Kill();

}catch

{

MessageBox.Show("关闭进程时出错!");

}

}

}

参考资料: http://zhangqiangqiangnet.blog.163.com/blog/static/13162834920100885117218/

fairytalekwt
2010-01-26 · 超过15用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:0
展开全部
楼主说的是线程守护把

using System;
using System.Text;
using System.Threading;

namespace ThreadTest
{
class Program
{
static void Main(string[] args)
{
Student student = new Student();
new Thread(new ThreadStart(new Thread1(student).run)).Start();//添加信息
new Thread(new ThreadStart(new Thread2(student).run)).Start();//读取信息
}
}

/// <summary>
/// 向Student类加添加信息
/// </summary>
public class Thread1
{
private Student student;
public Thread1(Student student)
{
this.student = student;
}
public void run()
{
int i = 0;
while (true)
{
if (i == 0)
student.Add("jxncwzb", 23);
else
student.Add("jxncwzb++", 22);
i = (i + 1) % 2;
}
}
}

/// <summary>
/// 读取Thread1干才添加的信息
/// </summary>
public class Thread2
{
private Student student;
public Thread2(Student student)
{
this.student = student;
}
public void run()
{
while (true)
{
student.GetInfo();
}
}
}

public class Student
{
private string name;
private int age;
private bool isRun = false;
public void Add(string name, int age)
{
Monitor.Enter(this);
if (isRun)
Monitor.Wait(this);
this.name = name;
//Thread.Sleep(10);
this.age = age;
this.isRun = true;
Monitor.Pulse(this);
Monitor.Exit(this);
}

public void GetInfo()
{
Monitor.Enter(this);
if (!isRun)
Monitor.Wait(this);
Console.Write("姓名:" + name);
Console.WriteLine("&年龄:" + age.ToString());
this.isRun = false;
Monitor.Pulse(this);
Monitor.Exit(this);
}

}
}

湖北新蓝海是一家专注于网络营销 网络推广的领头企业 ,已为武汉健民、华工激光、江西仁和等多家知名企业提供网络营销外包服务。详情请到各大搜索引擎中搜索“湖北新蓝海”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skynomadism
2010-01-24 · TA获得超过319个赞
知道小有建树答主
回答量:410
采纳率:100%
帮助的人:167万
展开全部
到系统进程表中去查这个程序,如果不在就启动它
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z3122139
2010-01-24 · TA获得超过152个赞
知道答主
回答量:145
采纳率:0%
帮助的人:115万
展开全部
重写close方法行吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式