大家好,C#的服务程序,如果接受到一个指定的命令,需要让自己重启(服务重启,也就是自己重启自己),请问怎么实现,谢谢!应用程序有Application.Restart(),但是服务程序没有这个!!!
...

解决方案 »

  1.   

    如果非要重新启动,可以在关闭服务A自身之前启动程序B。程序B中重新启动服务A的方法,但是必须考虑服务A已经停止了再做重新启动操作!
      

  2.   


    private void button1_Click(object sender, EventArgs e)
            {            ConnectionOptions options = new ConnectionOptions
                {
                    Username = this.textBox1.Text,
                    Password = this.textBox2.Text
                };
                ManagementScope scope = new ManagementScope(@"\\" + this.textBox3.Text + @"\root\cimv2", options);
                scope.Connect();
                ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
                ManagementObjectCollection objects = new ManagementObjectSearcher(scope, query).Get();
                foreach (ManagementObject obj2 in objects)
                {
                    if (this.radioButton1.Checked)
                    {
                        obj2.InvokeMethod("reboot", null);//重启
                    }
                    else
                    {
                        obj2.InvokeMethod("ShutDown", null);//关机
                    }
                } 
            }
      

  3.   

    7楼那位兄弟的代码,虽没用过,但是我刚查了vs自带的帮助,貌似很好,楼主先试试看,毕竟是用C#代码直接实现,维护也方便