使用 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.禁止创建窗口:
修改控制台应用程序的代码以禁止创建控制台窗口。这可以通过将 CreateNoWindow 添加到 ProcessStartInfo 选项来实现: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中文网其他相关文章!