我有一个在我的计算机中运行的 Windows 服务,并在计算机打开时初始化(它对其他服务有一些依赖,但在它们之后立即初始化)。
然后,我有一个不同的应用程序,它依赖于该服务的运行(应用程序包含一个 UI)。
我想在服务启动时启动这个应用程序。因此,我在服务的“OnStart()”事件中使用了以下代码:
var process = new Process();
process.StartInfo = new ProcessStartInfo
{
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Maximized
};
try
{
process = Process.Start(applicationPath);
return (true);
}
catch (Exception e)
{
Logger.Log("ApplicationHelper::OpenApplication Error: " + e.Message);
Logger.Log(applicationPath);
return (false);
}
发生的情况是应用程序的进程开始运行,但未显示 UI。我只能看到该进程正在任务管理器中运行。如何从 Windows 服务启动应用程序?
我已经启用了与桌面交互的选项,但它没有帮助。
我正在使用 .Net 4 和 Windows 7。
谢谢!
事实上,当我尝试打开该服务时,会弹出一条 Windows 消息,指出它与当前登录的尝试发送消息的用户不同。但我无法将服务的起始用户配置为当前用户。