elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Apagar monitor desde VB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Apagar monitor desde VB  (Leído 5,518 veces)
Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Apagar monitor desde VB
« en: 19 Agosto 2005, 01:39 am »

Código:
Option Explicit

Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2

Const ANYSIZE_ARRAY = 1

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

Declare Function GetCurrentProcess Lib "kernel32" () As Long
Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLUID As LUID) As Long
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

Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Long, ByVal fForce As Long) As Long

Private Sub SetShutdownPrivilege()
    Dim lpLUID        As LUID
    Dim lpToken       As TOKEN_PRIVILEGES
    Dim lpPrevToken   As TOKEN_PRIVILEGES
    Dim hToken&, r&

    r = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken)
    r = LookupPrivilegeValue(vbNullString, "SeShutdownPrivilege", lpLUID)
   
    With lpToken
      .PrivilegeCount = 1
      .Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
      .Privileges(0).pLuid = lpLUID
    End With
   
    r = AdjustTokenPrivileges(hToken, False, lpToken, 4 + (12 * lpToken.PrivilegeCount), lpPrevToken, 4 + (12 * lpPrevToken.PrivilegeCount))
End Sub

Sub SuspendSystem()
  Call SetShutdownPrivilege
  Call SetSystemPowerState(True, False)
End Sub


« Última modificación: 19 Agosto 2005, 01:42 am por Anhur » En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
- n0sEcReT -

Desconectado Desconectado

Mensajes: 284


Impossible is nothing


Ver Perfil WWW
Re: Apagar monitor desde VB
« Respuesta #1 en: 19 Agosto 2005, 02:24 am »

Buen ejemplo para obtener privilegios para supsender el sistema  ;)


En línea



BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Apagar monitor desde VB
« Respuesta #2 en: 19 Agosto 2005, 02:33 am »

Gracias Anhur por el codigo

Pero me da error en
Código:
Tipe LUID

Citar
Error de compilacion:
No se puede definir un tipo definido por el usuario publico en un modulo de usuario privado

Son librerias que no he utilizado en mi vida...
En línea

- n0sEcReT -

Desconectado Desconectado

Mensajes: 284


Impossible is nothing


Ver Perfil WWW
Re: Apagar monitor desde VB
« Respuesta #3 en: 19 Agosto 2005, 02:41 am »

BenRu abri el Visual Basic , crea un proyecto nuevo , luego9 elimina si queres el Form1 y agrega un Modulo luego selecciona el codigo que puso Anhur y pegalo dentro del Modulo (Module1)  y donde dice :

Código:
Sub SuspendSystem()
  Call SetShutdownPrivilege
  Call SetSystemPowerState(True, False)
End Sub

Cambialo por este :

Código:
Sub Main()
  Call SetShutdownPrivilege
  Call SetSystemPowerState(True, False)
End Sub

Y le das ejecutar y listo ...

Dificil ?? xD

Salu2 !  ;)
En línea



Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: Apagar monitor desde VB
« Respuesta #4 en: 19 Agosto 2005, 02:42 am »

Eso debería ir en un módulo estándar...

Vamos Ruben, leete un tutorial de VB que te va a ayudar mucho. Aprenda Visual Basic como en primero es muy bueno y explica todas estas cosas.

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Apagar monitor desde VB
« Respuesta #5 en: 19 Agosto 2005, 02:54 am »

Ya lo se, lo meti en unmodulo y no va...ni cambiando eso que dices

Código:
leete un tutorial de VB que te va a ayudar mucho

Ya lo estoy haciendo.... :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No consigo apagar el pc desde Java...
Java
NikNitro! 0 901 Último mensaje 26 Septiembre 2014, 12:56 pm
por NikNitro!
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines