C# 编写Windows服务实现开机启动一个程序
2013-10-23 23:10
796 查看
如果有一个应用程序,想要在电脑开机的时候自动启动(即使用户未登录Windows也要启动),可以用Windows服务来实现,我只是很简单的尝试了一下,由于前段时间做的一个办公QQ,在服务器端需要始终运行一个控制台程序来监听各种消息,但不能每次开机手动去启动这个控制台程序,所以就写了一个Windows服务,我用VS2008写的,以下是简单做法:
先在VS中创建一个Windows服务的项目,在自动生成的service1.cs文件里添加如下语句:
string StartAppPath = @"C:\Program Files\办公QQ服务\QQService.exe";
这是我要运行的控制台程序的路径,你用的时候换成你的就可以了,然后在OnStart()函数中添加如下代码:
try
{
Process proc = new Process();
proc.StartInfo.FileName = StartAppPath; //注意路径
proc.Start();
}
catch (System.Exception ex)
{
//错误处理
}
双击Service1.cs打开设计视图,在设计视图中右键,选择添加安装程序,然后在生成的ProjectInstaller.Designer.cs文件中的InitializeComponent()函数中添加如下代码,具体作用不甚清楚:
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceInstaller1.ServiceName = "办公QQ服务"; //我的服务名称
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic; \\服务自动运行
好了,现在可以编译生成exe了,下面要用cmd命令将刚才写的这个Windows服务安装并启动:
先cmd运行命令: cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
进入.net2.0的文件夹,因为里面有个InstallUtil.exe的应用程序是我们需要用的,上面这个路径是我安装的路径,你根据需要改成自己的就行了,然后继续写下一个cmd命令:
InstallUtil C:\QQ_WinService.exe
这个.exe应用程序是我开头提到的用VS2008刚创建的,你也要根据需要换成你的,我直接把这个.exe拷出来放在C盘根目录下了,你到时换成你自己的路径就可以了
提示服务安装成功后,继续写下一个命令,启动这个服务:
net start 办公QQ服务
“办公QQ服务”是我安装的服务的名称,这里也需要换成你自己的
现在这个Windows服务就已经写好了,当然,这些cmd命令也可以写成一个批处理文件,要停止这个服务的话可以用:
Net stop 办公QQ服务
然后删除这个服务:
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
InstallUtil /u C:\QQ_WinService.exe
先在VS中创建一个Windows服务的项目,在自动生成的service1.cs文件里添加如下语句:
string StartAppPath = @"C:\Program Files\办公QQ服务\QQService.exe";
这是我要运行的控制台程序的路径,你用的时候换成你的就可以了,然后在OnStart()函数中添加如下代码:
try
{
Process proc = new Process();
proc.StartInfo.FileName = StartAppPath; //注意路径
proc.Start();
}
catch (System.Exception ex)
{
//错误处理
}
双击Service1.cs打开设计视图,在设计视图中右键,选择添加安装程序,然后在生成的ProjectInstaller.Designer.cs文件中的InitializeComponent()函数中添加如下代码,具体作用不甚清楚:
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceInstaller1.ServiceName = "办公QQ服务"; //我的服务名称
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic; \\服务自动运行
好了,现在可以编译生成exe了,下面要用cmd命令将刚才写的这个Windows服务安装并启动:
先cmd运行命令: cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
进入.net2.0的文件夹,因为里面有个InstallUtil.exe的应用程序是我们需要用的,上面这个路径是我安装的路径,你根据需要改成自己的就行了,然后继续写下一个cmd命令:
InstallUtil C:\QQ_WinService.exe
这个.exe应用程序是我开头提到的用VS2008刚创建的,你也要根据需要换成你的,我直接把这个.exe拷出来放在C盘根目录下了,你到时换成你自己的路径就可以了
提示服务安装成功后,继续写下一个命令,启动这个服务:
net start 办公QQ服务
“办公QQ服务”是我安装的服务的名称,这里也需要换成你自己的
现在这个Windows服务就已经写好了,当然,这些cmd命令也可以写成一个批处理文件,要停止这个服务的话可以用:
Net stop 办公QQ服务
然后删除这个服务:
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
InstallUtil /u C:\QQ_WinService.exe
相关文章推荐
- 让你写的c#程序一开机就自动运行 Windows服务实现开机启动
- C#实现一个用于开机启动其他程序的Windows服务(2009-07-01)
- C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果
- C#实现一个用于开机启动其他程序的Windows服务
- C#实现一个用于开机启动其他程序的Windows服务
- C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果
- C#编写windows服务,多服务为什么只启动一个(ServiceBase.Run)
- C#实现一个用于开机启动其他程序的Windows服务
- 编写一个C#Windows服务程序,定时从数据库中拿出记录发送邮件。
- C# 自己写了一个windows服务程序,运行时错误: 错误 1053: 服务没有及时响应启动或控制请求。(推荐)
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- windows 使用sc命令将程序注册成服务 实现后台运行开机自启
- C#编写Windows服务程序图文教程(转载)
- C# Windows 服务 的简单程序的编写,安装 和 卸载
- C#实现WinForm随WINDOWS服务一起启动
- C# 实现是否设置指定程序为开机启动程序
- C# “快捷方式” 实现程序开机启动
- C#编写Windows服务程序图文教程
- c#实现程序的开机启动
- c#实现程序的开机启动