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 Forms, 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!