我创建了Windows窗体应用程序和Windows服务,我可以从Windows窗体启动服务,但是如果我也尝试启动Windows窗体应用程序,它将无法正常工作。
要启动我的应用程序,我使用System.Process.Start
,我在Windows窗体应用程序名称的进程选项卡中的[[任务管理器中看到了它,但没有显示我的窗体。
public partial class testService: ServiceBase
{
Timer tm = new Timer();
int n = 0;
public testService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
tm.Interval = 10000;
tm.Elapsed += Tm_Elapsed;
tm.Start();
}
private void Tm_Elapsed(object sender, ElapsedEventArgs e)
{
if (n == 2)
{
try
{
ProcessStartInfo info = new ProcessStartInfo(@"pathName\appName.exe");
info.WorkingDirectory = Path.GetDirectoryName(@"pathName");
Process.Start(info);
}
catch (Exception exception)
{
Log.writeEventLog(exception.Message);
}
var service = new ServiceController("testService");
service.Stop();
}
n++;
}
protected override void OnStop()
{
tm.Stop();
}
}
有人知道为什么它不起作用吗?我需要这样做,因为我必须每隔10分钟用Windows表格询问用户是否处于活动状态。UPDATE
然后您如何从服务启动内容?你不知道这不是服务应该如何工作的。
另一方面,您可以以用户身份运行后台进程以完成相同的操作。
您可以通过注册表,启动文件夹或任务计划程序启动“服务”来执行此操作。