问一个程序监控的问题??

awnu1988 2009-12-17 01:22:41
就是做一个程序A,通过这个程序A判断另一个程序B是否在运行,如果在程序B运行则程序A无反应,如果监控到程序B的线程停止,则程序A触发程序B使程序B重新启动,这应该怎么做,新手大家帮帮忙,项目挺急的....
如果有人能一次解决追加20分...
...全文
174 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
public static bool IsAppStart(String AppName,String AppPath)
{


System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName(AppName);
foreach (System.Diagnostics.Process myProcess in myProcesses)
{

string ProcessFile = myProcess.Modules[0].FileName;
FileInfo Myfile = new FileInfo(ProcessFile);
if (Myfile.DirectoryName.ToLower() == AppPath.ToLower())
{
return true;
}
}


return false;
}



这段代码实现的效果是什么?还有返回值被谁接收?
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
还有我如何判断呢,比如判断if(??=true),??里我应该写什么?
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 yuwenge 的回复:]
注释在5楼。
[/Quote]

不好意思,问一下,你写的那个代码能否循环么?就是能否让他一直在运行,不断的查询..
huangyuelei01 2009-12-18
  • 打赏
  • 举报
回复
路过
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
问题自己找人解决了,为了让后面的看贴子的人明白我解释一下
bool isHave = false;
Process[] myProcesses = System.Diagnostics.Process.GetProcesses();//查看所有进程并放到数组myProcesses里
foreach (Process myProcess in myProcesses)//从进程里一个一个读出并在下面的if语句里与“”里的内容比对
{
if ("ProcessMonitoring" == myProcess.ProcessName)
{
isHave = true;//如果为true则退出
break;
}
}

if (!isHave)//如果不存在,则进行相应的操作
{
//写相应的操作

}
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
谢谢帮顶,问题还在,怎么判断进程是否运行中,麻烦了大家
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
谢谢帮顶,问题还在,怎么判断进程是否运行中,麻烦了大家
dakuku 2009-12-18
  • 打赏
  • 举报
回复
学习了~
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
大家帮帮忙吧,光给个代码我也不知道怎么用,有人能不能好好给我讲讲,这要讲不清楚加我QQ27461779
真的特别急,帮帮忙吧
awnu1988 2009-12-18
  • 打赏
  • 举报
回复
顶...
卧_槽 2009-12-17
  • 打赏
  • 举报
回复
注释在5楼。
kaizi_sun 2009-12-17
  • 打赏
  • 举报
回复
顶下吧。
awnu1988 2009-12-17
  • 打赏
  • 举报
回复
没有什么方法比如在进程里找到我需要的程序B,如果找到说明程序没有死掉,如果找不到就说明程序死掉了重新启动程序B,没有类似的方法么?
ztenv 2009-12-17
  • 打赏
  • 举报
回复
因为最近刚刚设计了这个小东西,可以跨平台,可以很好的扩展等等,所以多说几句。。
ztenv 2009-12-17
  • 打赏
  • 举报
回复
1、最好不要心跳,如果你想你的程序可以监控任何一个进程,
2、第一个发的代码基本够用了,如果你无须知道程序什么死掉(不产生任何告警)
3、监控程序要做得尽可能的小巧,并且不能死掉,
4、如果要监控主机的其它资源或进程的一些资源,就需要好好设置一下程序的结构了。。。
c520120 2009-12-17
  • 打赏
  • 举报
回复
定时发心跳包就行了检测状态啊
woshifou 2009-12-17
  • 打赏
  • 举报
回复
学习。
huhulala12345 2009-12-17
  • 打赏
  • 举报
回复
关键是如何在A中判断B的状态,B中首先需要能定时做一件事情,比如定时更新一个值,然后在A中访问这个值,检查这个值的变化,从而判断B是否死掉了。这样做需要使用共享内存一类的机制。
或者直接在B中定时给A发Windows消息,A中定时检测B是否在一定时间内发来了消息
awnu1988 2009-12-17
  • 打赏
  • 举报
回复
如何查找一个线程,比如我想查找线程A,想知道它是否在运行,应该怎么样写?
ludeli2004 2009-12-17
  • 打赏
  • 举报
回复
帮顶
加载更多回复(15)

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧