La Web del Programador: Comunidad de Programadores
 
    Pregunta:  16798 - API ABORTSYSTEMSHUTDOWN DE LA DLL ADVAPI32.DLL
Autor:  Ronny Delgado
Estoy iniciando en la utilizacion de api de windows
Estoy tratando de utilizar la funcion AbortSystemShutdown que utiliza la dll "advapi32.dll" pero cuando trato de hacerlo correr me aparece este mensaje:

"advapi32.dll was loaded, but the DllRegisterServer entry point was not found. DllRegisterServer may not be exported, or a corrupt version of advapi32.dll may be in memory. Cosider using PView to detect and remove in"

Esto ocurre cuando trato de registrarlo con Ejecutar > "regsvr32 advapi32.dll"

¿Qué puedo hacer?
Agradezco cualquier ayuda

  Respuesta:  Vianneí Nebreda
Tengo el siguiente código que lo puedes copiar en tu proyecto:

Para el Módulo:

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

Para el formulario:

Public Sub ApagarPc()
Dim x As Integer
x = ExitWindowsEx(1, 0&)
End Sub

Public Sub Cerrar()
Dim x As Integer
´Arranca con otro usuario reiniciando los programas del menu de inicio
x = ExitWindowsEx(0, 0)
End Sub

Public Sub Reiniciar()
Dim x As Integer
´Reinicia el ordenador
x = ExitWindowsEx(2, 0)
End Sub

Public Sub Cambio()
Dim x As Integer
´Cambia el usuario sin reiniciar programas
x = ExitWindowsEx(4, 0)
End Sub

Espero que esto responda acertadamente tu problema, Ronny.