写了一个windows服务,代码老是不执行,请各位大虾帮忙看一下

yelang 2014-08-07 09:37:04
using System.Diagnostics;
using System.ServiceProcess;
using System.Windows.Forms;

namespace CaptorService
{
public partial class CaptorService : ServiceBase
{
public CaptorService()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{

}

protected override void OnStop()
{
SearchTimer.Enabled = false;
}

private void SearchProcesses()
{
Process[] processes = Process.GetProcesses();

int intClient = 0;

foreach (Process process in processes)
{
if (process.ProcessName.ToUpper().Equals("QQ"))
{
MessageBox.Show("找到");
intClient = 1;
break;
}
}

if (intClient == 0)
{
Prompt prompt = new Prompt();
prompt.ShowDialog();
}

}

private void SearchTimer_Tick(object sender, System.EventArgs e)//Timer控件,每10秒执行一次。
{
MessageBox.Show("开始查巡!");
SearchProcesses();
MessageBox.Show("结束查巡!");
}
}
}

这个服务安装成功,在windows服务管理器里能够成功启动,就是启动了以后感觉程序里的代码都没有执行,没有任何反应,请各位帮忙看看问题出在哪儿了。谢谢了。
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunny906 2014-08-07
  • 打赏
  • 举报
回复
1、OnStart里缺少方法 2、既然是windows服务就不要在代码里出现MessageBox.Show、Timer控件之类的客户端呈现方式 3、Timer里的代码用Thread代替
平头哥哥 2014-08-07
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
你想让它有什么反应? prompt.ShowDialog(); ??? 有2点错误 1.首先你是个服务,服务里开模式窗体,你等着谁来操作,没人操作就不往下执行了 2.WINDOWS是多用户系统,不同用户互相看不到界面的.你在服务里开窗体,而服务跟登陆用户不是一个用户,所以你看不到界面 结论:你的服务开了一个看不见的模式窗体,然后就不动了
-------------- +1
平头哥哥 2014-08-07
  • 打赏
  • 举报
回复
引用
protected override void OnStart(string[] args) { }
空的?
於黾 2014-08-07
  • 打赏
  • 举报
回复
你想让它有什么反应? prompt.ShowDialog(); ??? 有2点错误 1.首先你是个服务,服务里开模式窗体,你等着谁来操作,没人操作就不往下执行了 2.WINDOWS是多用户系统,不同用户互相看不到界面的.你在服务里开窗体,而服务跟登陆用户不是一个用户,所以你看不到界面 结论:你的服务开了一个看不见的模式窗体,然后就不动了
marswangbo 2014-08-07
  • 打赏
  • 举报
回复
你的onStart都不写,程序怎么可能执行呢。。。

110,538

社区成员

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

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

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