自己写了一个window服务,安装后调试看到把explorer.exe进程已经Kill()了,但不到一秒钟就又自动启动起来了。这是为什么?有什么办法不让它自动启动吗?我在任务管理器中结束这个进程是不会自动启动的啊...XP SP3的系统

解决方案 »

  1.   

    还有一个问题:
    我在服务中用Process.Start(@"D:\Program Files\Tencent\QQ\Bin\QQ.exe");想启动QQ,但是启动后在任务管理器可以看到QQ的进程,桌面却不显示。
      

  2.   

    2.权限不够
    1.explorer比较特殊
      

  3.   

    Explorer.exe
    是Windows Explorer用于控制Windows图形Shell,包括开始菜单、任务栏,桌面和文件管理。这是一个用户的Shell,在我们看起来就像任务条,桌面等等,或者说它就是资源管理器。它对Windows系统的稳定性是比较重要的。一般结束它会自动重建,如果不能重建,系统的可用性也就不高了。
      

  4.   

    楼主第2个问题我也遇到过,解决办法是在你的Service属性里选择
    登陆->本地账户系统->允许服务与桌面交互。
      

  5.   

    5L能说的清楚一点儿吗?不好意思...我新手...找不到你说的这个...
    我是这样设置登录用户的,但属性里没有你说的“允许服务与桌面交互。”ServiceProcessInstaller processInstall = new ServiceProcessInstaller();
    processInstall.Account = ServiceAccount.LocalSystem;
      

  6.   

    试试这个!using System;       
    using System.Collections.Generic; 
    using System.Text; 
    using System.Diagnostics; 
    using System.IO; 
    namespace ConsoleApplication5 

        class Program 
        { 
            static void Main(string[] args) 
            { 
                Process p = new Process();                 //创建Process对象
                p.StartInfo.FileName = "cmd.exe";          //要调用的程序 
                p.StartInfo.UseShellExecute = false;       //关闭Shell的使用 
                p.StartInfo.RedirectStandardInput = true;  //重定向标准输入 
                p.StartInfo.RedirectStandardOutput = true; //重定向标准输出 
                p.StartInfo.RedirectStandardError = true;  //重定向错误输出 
                p.StartInfo.CreateNoWindow = true;         //设置不显示窗口 
                p.Start();                                 //启动进程 
                p.StandardInput.WriteLine("taskkill \f \im explorer.exe");   //要执行的命令 
                p.StandardInput.WriteLine("exit"); 
            } 
        } 
    }
      

  7.   

    7L的也是不行啊...把QQ.exe启动起来了,而且还是用的System这个账号,桌面也没显示。我想要用administratro把QQ.exe启动起来,并且可以在桌面显示,而不是只启动起来一个进程求高手...help me
      

  8.   

    就是服务管理,运行->services.msc->找到你的服务->鼠标右键属性->登陆->本地账户系统->允许服务与桌面交互