Gå til innhold

Slå av datamaskinen med Visual Basic


Anbefalte innlegg

Videoannonse
Annonse

Denne koden vil skru av Pcen


Declare Function ExitWindows Lib "user32" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long

Public Const EWX_FORCE = 4

Public Const EWX_LOGOFF = 0

Public Const EWX_REBOOT = 2

Public Const EWX_SHUTDOWN = 1



Private Sub Form1_Load()

ExitWindowsEx EWX_FORCE, 0

End Sub

 

 

Denne coden vil restarte PCen


Declare Function ExitWindows Lib "user32" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long

Public Const EWX_FORCE = 4

Public Const EWX_LOGOFF = 0

Public Const EWX_REBOOT = 2

Public Const EWX_SHUTDOWN = 1



Private Sub Form1_Load()

ExitWindowsEx EWX_REBOOT, 0

ExitWindowsEx EWX_REBOOT, 0

ExitWindowsEx EWX_REBOOT, 0

End Sub

 

 

Denne vil logge av pålogget bruker


Declare Function ExitWindows Lib "user32" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long

Public Const EWX_FORCE = 4

Public Const EWX_LOGOFF = 0

Public Const EWX_REBOOT = 2

Public Const EWX_SHUTDOWN = 1



Private Sub Form1_Load()

ExitWindowsEx EWX_LOGOFF, 0

End Sub

Lenke til kommentar
  • 1 måned senere...

For å kunne slå av pcen i Xp eller NT må du skrive inn dette i programmet ditt:

 

' API-calls

Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long

Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long

Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long

 

Private Const EWX_LOGOFF = 0

Private Const EWX_SHUTDOWN = 1

Private Const EWX_REBOOT = 2

Private Const EWX_FORCE = 4

Private Const TOKEN_ADJUST_PRIVILEGES = &H20

Private Const TOKEN_QUERY = &H8

Private Const SE_PRIVILEGE_ENABLED = &H2

Private Const ANYSIZE_ARRAY = 1

Private Const VER_PLATFORM_WIN32_NT = 2

 

Type OSVERSIONINFO

dwOSVersionInfoSize As Long

dwMajorVersion As Long

dwMinorVersion As Long

dwBuildNumber As Long

dwPlatformId As Long

szCSDVersion As String * 128

End Type

 

Type LUID

LowPart As Long

HighPart As Long

End Type

 

Type LUID_AND_ATTRIBUTES

pLuid As LUID

Attributes As Long

End Type

 

Type TOKEN_PRIVILEGES

PrivilegeCount As Long

Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES

End Type

 

' Sjekker om oprativsystemet er XP eller NT

Public Function IsWinNT() As Boolean

Dim myOS As OSVERSIONINFO

myOS.dwOSVersionInfoSize = Len(myOS)

GetVersionEx myOS

IsWinNT = (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT)

End Function

 

' Gir programmet ditt rettigheter til å slå av pcen

Private Sub EnableShutDown()

Dim hProc As Long

Dim hToken As Long

Dim mLUID As LUID

Dim mPriv As TOKEN_PRIVILEGES

Dim mNewPriv As TOKEN_PRIVILEGES

hProc = GetCurrentProcess()

OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken

LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID

mPriv.PrivilegeCount = 1

mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED

mPriv.Privileges(0).pLuid = mLUID

AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount)

End Sub

 

Private Sub Form_Load()

 

If IsWinNT Then EnableShutDown

 

End Sub

 

 

Så kan du bruke kodene i siste innlegg

Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...