vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
Re: Computer Herunterfahren! 
Autor: CyberDreams
Datum: 07.06.05 09:44

Ich hab da irgendwo mal einen COde gefunden, aber noch nicht probiert, ob das so funktioniert...

Option Explicit
' Windows-Version
' für den Aufruf der GetVersionEx-Funktion
Private Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion      As Long
  dwMinorVersion      As Long
  dwBuildNumber       As Long
  dwPlatformId        As Long
  szCSDVersion        As String * 128
End Type
 
Private Declare Function GetVersionEx Lib "Kernel32" Alias "GetVersionExA" ( _
  lpVersionInformation As OSVERSIONINFO) As Long
 
'System beenden + neu starten
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
  ByVal dwReserved As Long) As Long
 
Public Enum EWX_ACTION
  EWX_LOGOFF = 0
  EWX_SHUTDOWN = 1
  EWX_REBOOT = 2
End Enum
 
'Für Windows NT/2000
Private Const ANYSIZE_ARRAY = 1
 
Private Type LARGE_INTEGER
  lowpart   As Long
  highpart  As Long
End Type
 
Private Type LUID_AND_ATTRIBUTES
  pLuid       As LARGE_INTEGER
  Attributes  As Long
End Type
 
Private Type TOKEN_PRIVILEGES
  PrivilegeCount            As Long
  Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
 
Private Const TOKEN_ADJUST_PRIVILEGES = 32
Private Const TOKEN_QUERY = 8
Private Const SE_PRIVILEGE_ENABLED As Long = 2
 
Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias _
  "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As _
  String, lpLuid As LARGE_INTEGER) As Long
Private Declare Function GetCurrentProcess Lib "Kernel32" () As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (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 OpenProcessToken Lib "advapi32.dll" (ByVal _
ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
 
'Aktuelle Windows-Plattform ermitteln
Private Function GetWinPlatform() As Long
Dim osvi          As OSVERSIONINFO
Dim strCSDVersion As String
 
  osvi.dwOSVersionInfoSize = Len(osvi)
  If GetVersionEx(osvi) = 0 Then Exit Function
  GetWinPlatform = osvi.dwPlatformId
 
End Function
 
'Prüfen, ob Windows NT/2000
Public Function IsWindowsNT() As Boolean
Const dwMaskNT = &H2&
 
  IsWindowsNT = (GetWinPlatform() And dwMaskNT)
 
End Function
 
 
'System herunterfahren/neu starten
'oder aktuellen Benutzer abmelden
Public Function RebootSystem(ByVal Action As EWX_ACTION) As Boolean
Dim fOkReboot   As Boolean
Dim ret         As Long
Dim hToken      As Long
Dim tkp         As TOKEN_PRIVILEGES
Dim tkpOld      As TOKEN_PRIVILEGES
Const sSHUTDOWN As String = "SeShutdownPrivilege"
 
  If IsWindowsNT() Then
    ' Windows NT wird ausgeführt.
    ' Sicherheitsüberprüfungen und
    ' Veränderungen sind jetzt notwendig,
    ' um sicherzustellen, daß das Token
    ' vorhanden ist, das einen Neustart zuläßt.
    If OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or _
      TOKEN_QUERY, hToken) Then
      ret = LookupPrivilegeValue(vbNullString, sSHUTDOWN, tkp.Privileges( _
      0).pLuid)
      tkp.PrivilegeCount = 1
      tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
      fOkReboot = AdjustTokenPrivileges(hToken, 0, tkp, LenB(tkpOld), tkpOld, _
        ret)
    End If
  Else
    ' Win95/98 wird ausgeführt. Keine Aktion ist notwendig.
    fOkReboot = True
  End If
 
  If fOkReboot Then RebootSystem = (ExitWindowsEx(Action, 0) <> 0)
 
End Function
MfG
CyberDreams
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Computer Herunterfahren!1.188Baumgartner Alex06.06.05 19:23
Re: Computer Herunterfahren!818CyberDreams07.06.05 09:44
Re: Computer Herunterfahren!740CutterSlade07.06.05 10:42
Re: Computer Herunterfahren!690McKinley08.06.05 17:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel