用托盘控制windows服务的c#实现
来源:互联网 发布:什么软件可以裁剪图片 编辑:程序博客网 时间:2024/04/29 10:35
using System;
namespace UBISerialsController
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
static System.ServiceProcess.ServiceController sc;
static System.Windows.Forms.NotifyIcon ni;
static System.Windows.Forms.ContextMenu cm;
static System.Timers.Timer timer;
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static void Main()
{
try
{
sc=new System.ServiceProcess.ServiceController("UBISerials");
ni=new System.Windows.Forms.NotifyIcon();
ni.Visible=false;
cm=new System.Windows.Forms.ContextMenu();
cm.MenuItems.Add(new System.Windows.Forms.MenuItem("停止",new EventHandler(StopService)));
cm.MenuItems.Add(new System.Windows.Forms.MenuItem("暂停",new EventHandler(PauseService)));
cm.MenuItems.Add(new System.Windows.Forms.MenuItem("继续",new EventHandler(ContiuneService)));
cm.MenuItems.Add(new System.Windows.Forms.MenuItem("开始",new EventHandler(StartService)));
cm.MenuItems.Add("-");
cm.MenuItems.Add(new System.Windows.Forms.MenuItem("关于",new EventHandler(About)));
cm.MenuItems.Add(new System.Windows.Forms.MenuItem("退出",new EventHandler(Exit)));
ni.ContextMenu=cm;
ni.Visible=true;
SetUpTimer();
System.Windows.Forms.Application.Run();
}
catch(System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
}
}
private static void StopService(object sender,System.EventArgs e)
{
if(sc.Status==System.ServiceProcess.ServiceControllerStatus.Running&&sc.CanStop==true)
{
try
{
sc.Stop();
}
catch(System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
}
}
}
private static void PauseService(object sender,System.EventArgs e)
{
if(sc.Status!=System.ServiceProcess.ServiceControllerStatus.Paused&&sc.CanPauseAndContinue==true)
{
try
{
sc.Pause();
}
catch(System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
}
}
}
private static void ContiuneService(object sender,System.EventArgs e)
{
if(sc.Status==System.ServiceProcess.ServiceControllerStatus.Paused&&sc.CanPauseAndContinue==true)
{
try
{
sc.Continue();
}
catch(System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
}
}
}
private static void StartService(object sender,System.EventArgs e)
{
if(sc.Status==System.ServiceProcess.ServiceControllerStatus.Stopped)
{
try
{
sc.Start();
}
catch(System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
}
}
}
private static void About(object sender,System.EventArgs e)
{
System.Windows.Forms.MessageBox.Show("2005.4.3","关于");
}
private static void Exit(object sender,System.EventArgs e)
{
try
{
timer.Dispose();
sc.Dispose();
cm.Dispose();
ni.Dispose();
System.Windows.Forms.Application.Exit();
}
catch(System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
}
}
private static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
GetServiceState();
}
private static void GetServiceState()
{
sc.Refresh();
switch(sc.Status)
{
case System.ServiceProcess.ServiceControllerStatus.Stopped:
{
ni.Icon=new System.Drawing.Icon("stopped.ico");
cm.MenuItems[0].Enabled=false;
cm.MenuItems[1].Enabled=false;
cm.MenuItems[2].Enabled=false;
cm.MenuItems[3].Enabled=true;
break;
}
case System.ServiceProcess.ServiceControllerStatus.Running:
{
ni.Icon=new System.Drawing.Icon("started.ico");
cm.MenuItems[0].Enabled=true;
cm.MenuItems[1].Enabled=true;
cm.MenuItems[2].Enabled=false;
cm.MenuItems[3].Enabled=false;
break;
}
case System.ServiceProcess.ServiceControllerStatus.Paused:
{
ni.Icon=new System.Drawing.Icon("paused.ico");
cm.MenuItems[0].Enabled=false;
cm.MenuItems[1].Enabled=false;
cm.MenuItems[2].Enabled=true;
cm.MenuItems[3].Enabled=false;
break;
}
default:
{
ni.Icon=new System.Drawing.Icon("paused.ico");
break;
}
}
}
private static void SetUpTimer()
{
timer=new System.Timers.Timer();
timer.Interval=500;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Start();
}
}
}
- 用托盘控制windows服务的c#实现
- 摘:用托盘控制windows服务的c#实现
- 用托盘控制windows服务的c#实现
- 用托盘控制windows服务的c#实现 (转)
- C#实现用托盘控制windows服务的
- 托盘程序如何控制windows服务
- 托盘程序如何控制windows服务
- 浅谈c#实现隐藏任务栏图标的Windows托盘程序
- 浅谈c#实现隐藏任务栏图标的Windows托盘程序
- C#控制Windows服务
- windows控制台下托盘
- windows服务+托盘控制程序
- 用Visual C#实现系统加载服务的控制
- Windows服务之实现对服务的控制管理
- Windows服务之实现对服务的控制管理
- C# WINDOWS服务交互的实现
- C#制作Windows service服务系列三--制作可控制界面的Windows服务(windows service)
- C#制作Windows service服务系列三--制作可控制界面的Windows服务(windows service)
- Nuva 示例代码(每日一帖)之 简单浏览器
- 我常用的小模块-自动剔除单引号
- 我常用的小模块-自动在数字、字符混合的编号后加1
- 新创建一个博客
- 方便的制造连接字符串
- 用托盘控制windows服务的c#实现
- JADE学习笔记之三:行为
- VC++中进程间相互通信的十一种方法
- 整数转换成Char类型时的截断问题
- 1
- 欢迎到我的博客园
- 不用存储过程一样参数传递
- 应对SOX法案的挑战
- 中国唯一没有贪污的王朝