gpt4 book ai didi

c# - 如何使用 C# 从 Windows 服务运行 EXE 程序?

转载 作者:IT王子 更新时间:2023-10-29 03:55:31 27 4
gpt4 key购买 nike

如何使用 C# 从 Windows 服务运行 EXE 程序?

这是我的代码:

System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe");

当我运行这个服务时,应用程序没有启动。
我的代码有什么问题?

最佳答案

这永远行不通,至少在 Windows Vista 或更高版本下行不通。关键问题是您试图从 Windows 服务而不是标准 Windows 应用程序中执行此操作。您显示的代码可以在 Windows 窗体、WPF 或控制台应用程序中完美运行,但在 Windows 服务中根本无法运行。

Windows 服务无法启动其他应用程序,因为它们未在任何特定用户的上下文中运行。与常规 Windows 应用程序不同,services are now run in an isolated session并禁止与用户或桌面交互。这样就没有地方可以运行应用程序了。

这些相关问题的答案中提供了更多信息:

您现在可能已经想到,解决问题的最佳方法是创建标准的 Windows 应用程序而不是服务。它们旨在由特定用户运行并与该用户的桌面相关联。这样,您可以随时使用已经显示的代码运行其他应用程序。

另一种可能的解决方案,假设您的控制台应用程序不需要任何类型的界面或输出,是指示进程不要创建窗口。这将防止 Windows 阻止创建您的进程,因为它将不再请求创建控制台窗口。您可以在this answer中找到相关代码一个相关的问题。

关于c# - 如何使用 C# 从 Windows 服务运行 EXE 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com