Search Tools Links Login

Initiate Shutdown or Restart of Specified Computer


Explains how to initiate a shutdown or restart of a local or remote machine. Note that you have to run this with an account that has permission to execute the shutdown/restart on the specified machine.

If dwTimeout is not zero, InitiateSystemShutdown displays a dialog box on the specified computer. The dialog box displays the name of the user who called the function, displays the message specified by the lpMessage parameter, and prompts the user to log off. The dialog box beeps when it is created and remains on top of other windows in the system. The dialog box can be moved but not closed. A timer counts down the remaining time before a forced shutdown. If the user logs off, the system shuts down immediately. Otherwise, the computer is shut down when the timer expires.

If dwTimeout is zero, the computer shuts down without displaying the dialog box, and the shutdown cannot be stopped by AbortSystemShutdown.

To shut down the local computer, the calling process must have the SE_SHUTDOWN_NAME privilege. To shut down a remote computer, the calling process must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer. By default, users can enable the SE_SHUTDOWN_NAME privilege on the computer they are logged onto, and administrators can enable the SE_REMOTE_SHUTDOWN_NAME privilege on remote computers.

Public Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long

'Function AbortSystemShutDown
'lpMachineName : string that specifies the network name of the computer where the shutdown is to be stopped. If lpMachineName is an empty string, the function stops the shutdown on the local computer.

Public Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long

Usage

Private Sub Command1_Click()
   'Initiate a System ShutDown on the remote PC called MYPC, a window will display
   'the message and after 30 seconds the system will shut down forcing every
   'application to stop. The system will be restarted
   InitiateSystemShutdown "\\MYPC", "The system is Shutting Down", 30, True, True
End Sub

Private Sub Command2_Click()
   'If before the 30 seconds elapse the user calls this function, the Shut down
   'process will be aborted
   AbortSystemShutdown "\\MYPC"
End Sub

About this post

Posted: 2019-08-22
By: AndreaTincani
Viewed: 608 times

Categories

Visual Basic 6

Attachments

No attachments for this post

Special Instructions

This code originally appeared on AndreaVB.com, and has been republished here with the permission of Andrea Tincani.


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.