[DllImport("advapi32.dll")]
static extern bool InitiateSystemShutdown(
[MarshalAs(UnmanagedType.LPStr)] string lpMachinename,
[MarshalAs(UnmanagedType.LPStr)] string lpMessage,
Int32 dwTimeout,
bool bForceAppsClosed,
bool bRebootAfterShutdown);
Declare Function InitiateSystemShutdown Lib "advapi32.dll" (TODO) As TODO
None.
None.
Please add some!
Please add some!
Public ErrMsg As String
Private Flag As Integer = 8
Function ShutdownPC(ByVal PC_Name As String, ByVal forced As Boolean) As Boolean
Dim wmi As ManagementClass
Dim objs As ManagementObjectCollection
Dim obj As ManagementObject
Dim Result As Integer
If forced = True Then
Flag += 4
End If
Try
wmi = New ManagementClass("\\" & PC_Name & "\root\cimv2:Win32_OperatingSystem")
objs = wmi.GetInstances()
For Each obj In objs
' Get an input parameters object for this method
Dim inParams As ManagementBaseObject = obj.GetMethodParameters("Win32Shutdown")
' fill 'em in
inParams("Flags") = Flag
inParams("Reserved") = 0
' do it!
Dim outParams As ManagementBaseObject = obj.InvokeMethod("Win32Shutdown", inParams, Nothing)
Result = Convert.ToInt32(outParams("returnValue"))
If Result <> 0 Then
ErrMsg = ErrorToString(Result)
Return False
End If
Exit For
Next
Catch ex As Exception
ErrMsg = ex.Message
Return False
End Try
Return True
End Function