有时候有些程式需要以服务的形式运行,但却不能做成服务,例如:Winform上面有调用ActiveX控件,ActiveX控件不能在服务中运行.
这时有两种解决方案:
1.做计划任务.此处略,重点是所有用户登录前运行。
2.做一个服务启动Winform程式,缺点是需要运行两个进程,代码参考如下:
代码
private Process process=null;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
//启动winform程式,此处winfrom程式与服务在同一目录
process = Process.Start(AppDomain.CurrentDomain.BaseDirectory + "test.exe");
}
protected override void OnStop()
{
//关闭winform程式
process.CloseMainWindow();
process.Close();
process.Dispose();
}
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
//启动winform程式,此处winfrom程式与服务在同一目录
process = Process.Start(AppDomain.CurrentDomain.BaseDirectory + "test.exe");
}
protected override void OnStop()
{
//关闭winform程式
process.CloseMainWindow();
process.Close();
process.Dispose();
}