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 サービス ホスト」(または同様のもの) を調べて、それがどのように行われているかを確認してください。同じ前提で、Process
代わりに a を使用しているだけです。
于 2013-01-10T17:55:07.927 に答える
2
質問へのコメントによると、ユーザーがログオンする前に起動するサービスではなく、WinForms で構築された標準のデスクトップ アプリを実行したいということです。
これは不可能です。必要なのはサービスです。
于 2013-01-10T18:04:08.257 に答える