'lpMachineName : string that specifies the network name of the computer to shut down. If
lpMachineName is an empty string, the function shuts down the local computer.
'lpMessage : string that specifies a message to display in the shutdown dialog box. This
parameter can be NULL if no message is required.
'dwTimeout : Specifies the time (in seconds) that the dialog box should be displayed.
While this dialog box is displayed, the shutdown can be stopped by the AbortSystemShutdown
' 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.
'bForceAppsClosed : Specifies whether applications with unsaved changes are to be forcibly
closed. If this parameter is TRUE, such applications are closed. If this parameter is
FALSE, a dialog box is displayed prompting the user to close the applications.
'bRebootAfterShutdown : Specifies whether the computer is to restart immediately after
shutting down. If this parameter is TRUE, the computer is to restart. If this parameter is
FALSE, the system flushes all caches to disk, clears the screen, and displays a message
indicating that it is safe to power down.
'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
'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