| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:[原创]tgc668011593要的进程监视
只看楼主 加入收藏
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
收藏
 问题点数:0 回复次数:7 
[原创]tgc668011593要的进程监视
http://bbs.bc-cn.net/viewthread.php?tid=117666
x8jcqRHv.rar (4.16 KB) [原创]tgc668011593要的进程监视


搜索更多相关主题的帖子: 进程 
2007-01-24 11:10
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
tgc668011593看看是不是这个?
运用了timer和Process

2007-01-24 11:12
tgc668011553
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-23
收藏
得分:0 
谢谢楼主!我所要实现的就是这个功能!

能给出源代码参考下吗?

谢谢!
2007-01-24 11:19
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace FindProcess
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcesses();


foreach (System.Diagnostics.Process IsProcedding in pro)
{
this.listBox1.Items.Add(IsProcedding.ProcessName.ToString());

}
this.timer1.Enabled = true;

}

private void timer1_Tick(object sender, EventArgs e)
{
System.Diagnostics.Process[] pro1 = System.Diagnostics.Process.GetProcesses();

bool find ;

foreach (System.Diagnostics.Process IsProcedding in pro1)
{
find = false;
for (int i = 0; i <= this.listBox1.Items.Count-1; i++)
{

if (this.listBox1.Items[i].ToString() == IsProcedding.ProcessName.ToString())
{
find = true;
}
}
if (find == false)
{
System.DateTime currentTime = new System.DateTime();
currentTime = System.DateTime.Now;
this.listBox2.Items.Add("进程名:"+IsProcedding.ProcessName.ToString()+"--启动时间:"+currentTime.ToString());
this.listBox1.Items.Add(IsProcedding.ProcessName.ToString());

}


}

}
}
}


2007-01-24 11:21
tgc668011553
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-23
收藏
得分:0 
楼主的程序是根据this.listBox1.Items.Count总数来判断是否有新的程序运行!

可是用这个程序来监听其它程序是否在运行时.当某个程序第二次运行时就监听不到!

例如:用楼主的程序来进行监听! 第一次打开IE浏览器..能监听到!当关闭IE浏览器..再次打开IE浏览器好像不能监听到了吧?

2007-01-24 13:21
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
以下是引用tgc668011553在2007-1-24 13:21:00的发言:

例如:用楼主的程序来进行监听! 第一次打开IE浏览器..能监听到!当关闭IE浏览器..再次打开IE浏览器好像不能监听到了吧?


一样啊!判断一下:如果ListBox1里的进程名多余的话(原来打开的进程已经关闭了),就把这个多余项删除就好了。


2007-01-24 13:44
tgc668011553
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-23
收藏
得分:0 

谢谢楼主!

课程设计还差这部分功能就完成了!

想了一下把楼主的程序改成:

System.DateTime currentTime = new System.DateTime();
currentTime = System.DateTime.Now;
this.listBox2.Items.Add("进程名:"+IsProcedding.ProcessName.ToString()+"--启动时间:"+currentTime.ToString());
this.listBox1.Items.Add(IsProcedding.ProcessName.ToString());


string message = "程序"+IsProcedding.ProcessName+"第一次运行是否允许该程序运行?";
string caption = "注意!";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result;
result=MessageBox.Show(this, message, caption, buttons);
if(result == DialogResult.No)
{

IsProcedding.Kill();
listBox1.Items.Remove(IsProcedding.ProcessName);

}

这个就变成对程序第一次运行时!会提示该程序第一次运行.

要是允许该程序运行.则下次运行该程序时默认为允许运行状态!

课程设计终于完成了

谢谢楼主帮忙!

2007-01-24 13:51
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
呵呵,客气了!你的设计有点像瑞星的进程监控哦。

2007-01-24 14:27
快速回复:[原创]tgc668011593要的进程监视
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026384 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved