C# 打开C中作为系统启动的程序中的文件夹#

C# 打开C中作为系统启动的程序中的文件夹#,c#,C#,服务使用以下代码成功启动exe程序: using (Process myProcess = new Process()) { myProcess.StartInfo.WorkingDirectory = processFolderPath; myProcess.StartInfo.FileName = "PROCESS_1.exe"; myProcess.StartInfo.CreateNoWindow = false; my

服务使用以下代码成功启动exe程序:

using (Process myProcess = new Process()) {

      myProcess.StartInfo.WorkingDirectory = processFolderPath;
      myProcess.StartInfo.FileName = "PROCESS_1.exe";
      myProcess.StartInfo.CreateNoWindow = false;
      myProcess.Start();
   }
PROCESS_1
,我想打开一个文件夹:

Process.Start(@"C:\Users\mainuser\Documents\folder_to_open");
如果通过双击exe或以管理员身份正常启动
进程_1
,则此操作有效。但如果
进程1
从服务启动,并作为
系统运行,则无法打开文件夹


如果试图打开文件夹的进程作为系统从服务运行,是否可以在资源管理器中打开文件夹?

默认情况下,服务无权访问用户的会话。有关可能的解决方法,请参见复制。请记住,一般来说,让一个服务执行任何类型的GUI表示都是一种非常糟糕的做法。您应该更喜欢由用户显式运行的程序来管理这类事情。通常不允许服务(出于充分的理由)与桌面交互。这可能同样适用于由服务启动的流程。尤其是从服务中打开新窗口似乎是个坏主意,因为这会干扰用户当前的工作。如果没有用户登录,但服务仍在运行,会发生什么情况?