C# で Windows サービスから EXE プログラムを実行する
C# を使用して Windows サービス内から EXE プログラムを実行するには、固有の制限があるため、慎重な考慮が必要です。
問題ステートメント
Windows サービスから System.Diagnostics.Process.Start() を使用して EXE プログラムを起動しようとすると、失敗する場合があります。質問で提供されているコードは、この問題を示しています:
System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe");
問題の説明
Windows サービスは分離されたセッションで動作し、ユーザーやユーザーとの対話を妨げます。デスクトップ。この制限により、ユーザーの操作やデスクトップへのアクセスを必要とするアプリケーションの実行が禁止されます。
考慮事項
ソリューション
1.標準 Windows アプリケーションを使用する:
コードの実行を標準 Windows アプリケーション (例: Windows フォーム、WPF、コンソール) に移行します。これにより、アプリケーションが現在のユーザーのコンテキストで実行され、デスクトップと対話できるようになります。
2.ウィンドウの作成を抑制:
コンソール ウィンドウの作成を抑制するようにコンソール アプリケーションのコードを変更します。これは、ProcessStartInfo オプションに CreateNoWindow を追加することで実現できます:
ProcessStartInfo psi = new ProcessStartInfo() { FileName = @"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe", CreateNoWindow = true }; System.Diagnostics.Process.Start(psi);
追加リソース:
以上がWindows サービスはどのようにして外部 EXE ファイルを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。