Zamykanie, restart systemu - program w c#

Jakiej instrukcji uzyc w c#, aby zamknac lub wykonac restart systemu windows??

  • Witam,

    Restart można zrobić tak:

    //http://msdn.microsoft.com/en-us/library/aa394058(VS.85).aspx
        //    Win32Shutdown Method of the Win32_OperatingSystem Class
        //    The Win32Shutdown WMI class method provides the full set of shutdown options supported by Win32 operating systems. These include logoff, shutdown, reboot, and forcing a logoff, shutdown, or reboot. The calling process must have the SE_SHUTDOWN_NAME privilege.
        //    Windows NT 4.0 and Windows Me/98/95:  SE_SHUTDOWN_NAME privilege is not required.
        //This topic uses Managed Object Format (MOF) syntax. For more information about using this method, see Calling a Method.
        //Syntax:
        //uint32 Win32Shutdown(
        //    sint32 Flags,
        //    sint32 Reserved
        //);
        //Parameters:
        //- Flags:
        //    Bitmapped set of flags to shut the computer down. To force a command, add the Force flag (4) to the command value. Using Force in conjunction with Shutdown or Reboot on a remote computer immediately shuts down everything (including WMI, COM, and so on), or reboots the remote computer. This results in an indeterminate return value.
        //    Value     Meaning
    
        //    0     0x0     Log Off
        //    4     0x4     Forced Log Off (0 + 4)
        //    1     0x1     Shutdown
        //    5     0x5     Forced Shutdown (1 + 4)
        //    2     0x2    Reboot
        //    6     0x6    Forced Reboot (2 + 4)
        //    8     0x8    Power Off
        //    12    0xC    Forced Power Off (8 + 4)
        //- Reserved
        //    A means to extend Win32Shutdown. Currently, the Reserved parameter is ignored.
    
        public System.UInt32 ForceReboot()
        {
    
            System.Management.ManagementBaseObject inParams = PrivateLateBoundObject.GetMethodParameters("Win32Shutdown");
            inParams[ "Flags" ] = "6"; // System forced reboot
            inParams[ "Reserved" ] = "0";
            bool EnablePrivileges = PrivateLateBoundObject.Scope.Options.EnablePrivileges;
            PrivateLateBoundObject.Scope.Options.EnablePrivileges = true;
            System.Management.ManagementBaseObject outParams = PrivateLateBoundObject.InvokeMethod( "Win32Shutdown", inParams, null );
            PrivateLateBoundObject.Scope.Options.EnablePrivileges = EnablePrivileges;
            return System.Convert.ToUInt32( outParams.Properties[ "ReturnValue" ].Value );
          }
    
        }
    

    A zamknięcie podobnie tylko inne parametry (flagi) ;)

    Pozdrawiam,

    Maciek

    http://maciej-progtech.blogspot.com/

Zaloguj się, aby dodać swoją odpowiedź