Red de conocimiento informático - Problemas con los teléfonos móviles - VB escribe código de apagado

VB escribe código de apagado

Copiar a las opciones del módulo ExplicitDeclare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As LongPublic Const EWX_LOGOFF = 0 'Cerrar sesión

Const pública EWX_SHUTDOWN = 1 'Apagar

Const pública EWX_REBOOT = 2 'Reiniciar

Const pública EWX_FORCE = 4 'Forzar apagado Const pública TOKEN_ADJUST _PRIVILEGES = amp H20

Const pública TOKEN_QUERY = amp; SE_PRIVILEGE_ENABLED = & H2

Const pública ANYSIZE_ ARRAY = 1Tipo LUID

parte baja mientras

parte alta mientras

Tipo de finTipo LUID_AND_ATTRIBUTES

p>

pLuid como LUID

Atributos siempre

Tipo finalTipo TOKEN_PRIVILEGES

PrivilegioCuenta mientras

Privilegios (ANYSIZE_ARRAY) como LUID_AND_ATTRIBUTES

Tipo finalDeclarar función GetCurrentProcess Lib "kernel32" () siempre que

Declarar función LookupPrivilegeValue Lib "advapi32.dll" Alias ​​​​"LookupPrivilegeValueA" (ByVal lpSystemName como cadena, ByVal lpName Como cadena, lpLuid como LUID) mientras

Declarar función AjustarTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle mientras, ByVal DisableAllPrivileges mientras, NewState como TOKEN_PRIVILEGES, ByVal BufferLength mientras, PreviousState como TOKEN_PRIVILEGES, ReturnLength As Long) As Long

Declarar función OpenProcessToken Lib "advapi32.dll " (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As LongSub CloseWindowFor98ForXP() D

im hdlProcessHandle As Long

Dim hdlTokenHandle As Long

Dim tmpLuid As LUID

Dim tkp As TOKEN_PRIVILEGES

DimtkpNewButIgnored As TOKEN_PRIVILEGES

Dim tkpNewButIgnored As TOKEN_PRIVILEGES

Dim lBufferNeeded As Long

hdlProcessHandle = GetCurrentProcess()

OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_ PRIVILEGES O _

TOKEN_QUERY ), hdlTokenHandle LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid

tkp.PrivilegeCount = 1

tkp.Privileges(0).pLuid = tmpLuid

tkp. Privileges(0).Attributes = SE_PRIVILEGE_ENABLED AjustarTokenPrivileges hdlTokenHandle, False, tkp, _

Len(tkpNewButIgnored), tkpNewButIgnored, _

lBufferNeeded

Fin del método de subllamada CerrarVentanaFor98ForXPExitWindowsEx EWX_SHUTDOWN, 0