如何在登录 Windows 之前启动 Windows 窗体应用程序?是否可以在登录 Windows 之前启动 Windows 窗体应用程序?如果不是,我是否有机会在登录前启动 Windows 服务并从登录前已启动的服务调用 Windows 窗体应用程序?
问问题
668 次
2 回答
2
非常基本,但应该给你要点。您还需要ServiceProcessInstaller
为它创建一个(以及调用installutil
)。
public class WinFormHostService : System.ServiceProcess.ServiceBase
{
[STAThread]
public static void Main()
{
System.ServiceProcess.ServiceBase.Run(new WinFormHostService());
}
protected Process winFormsProcess;
public WinFormHostService()
{
this.ServiceName = "WinForm Host Service";
this.AutoLog = true;
}
protected override void OnStart(String[] args)
{
this.winFormsProcess = new Process();
try
{
this.winFormsProcess.UseShellExecute = false;
this.winFormsProcess.FileName = @"C:\Program Files\MyApp\MyApp.exe";
this.winFormsProcess.CreateNoWindow = true;
this.winFormsProcess.Start();
}
catch (Exception ex)
{
// unable to start process
}
}
}
这基本上就像从 Windows 服务托管 WCF 服务,因此如果您需要更多详细信息,请查看“WCF Windows 服务主机”(或类似名称)并查看它是如何完成的。同样的前提,您只是使用 aProcess
代替。
于 2013-01-10T17:55:07.927 回答
2
根据对您要运行标准桌面应用程序的问题的评论,该应用程序使用 WinForms 构建,而不是在用户登录之前启动的服务。
这是不可能的。你需要的是服务。
于 2013-01-10T18:04:08.257 回答