Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Fireball-CH en 5 Enero 2007, 01:27 am



Título: Reiniciar y Apagar Windows
Publicado por: Fireball-CH en 5 Enero 2007, 01:27 am
Hola a todos!

Me gustaría que me ayudaran con una aplicación en Visual Basic 6.0.

Tengo dos botones, uno dice Reiniciar y el otro Apagar. Ahora, quisiera saber cómo puedo reiniciar y apagar la computadora con los botones, respectivamente.

Hice un intento con algo de:

Declare Function ExitWindows Lib "User" (ByVal ReStartCode As Long, ByVal DosReturnCode As Integer) As Integer

pero me sale un error y no me permite generar el EXE.

Bueno, espero que pudan ayudarme. Saludos!


Título: Re: Reiniciar y Apagar Windows
Publicado por: Sancho.Mazorka en 5 Enero 2007, 02:58 am
Man casi nunca hago esto! pero BUSCA en este foro ya se hablo de esto!  En la parte de troyanos hay mucho!


Sancho.Mazorka    :P


Título: Re: Reiniciar y Apagar Windows
Publicado por: Fireball-CH en 5 Enero 2007, 05:45 am
Bueno, entonces buscaré.

De todos modos gracias, Sancho.Mazorka.


Título: Re: Reiniciar y Apagar Windows
Publicado por: Sancho.Mazorka en 5 Enero 2007, 05:59 am
Si lo queres poner en un Form a los Public cambialos por Private.

Modulo:
Código:
'API
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

'TIPOS DE PRIVILEGIOS
Public Type TOKEN_PRIVILEGES
   PrivilegeCount As Long
   TheLuid As LUID
   Attributes As Long
End Type

'TIPOS PARA APGAR LA PC
Public Enum EnumExitWindows
   WE_LOGOFF = 0
   WE_SHUTDOWN = 1
   WE_REBOOT = 2
   WE_POWEROFF = 8
End Enum

' + + + + + | PERMISOS | + + + + + '
Public Sub AdjustToken()
Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2
Dim hdlProcessHandle As Long
Dim hdlTokenHandle As Long
Dim tmpLuid As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long
hdlProcessHandle = GetCurrentProcess()
OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _
TOKEN_QUERY), hdlTokenHandle
LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
tkp.PrivilegeCount = 1
tkp.TheLuid = tmpLuid
tkp.Attributes = SE_PRIVILEGE_ENABLED
AdjustTokenPrivileges hdlTokenHandle, False, _
tkp, Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded
End Sub

' + + + + + | APAGAR, REINICIAR, CERRAR SESION, SUSPENDER PC | + + + + + '
Public Sub ExitWindows(ByVal aOption As EnumExitWindows)
AdjustToken
   Select Case aOption
      Case EnumExitWindows.WE_LOGOFF
         ExitWindowsEx (EnumExitWindows.WE_LOGOFF Or EWX_FORCE), &HFFFF
      Case EnumExitWindows.WE_REBOOT
         ExitWindowsEx (EnumExitWindows.WE_SHUTDOWN Or EWX_FORCE Or EnumExitWindows.WE_REBOOT), &HFFFF
      Case EnumExitWindows.WE_SHUTDOWN
         ExitWindowsEx (EnumExitWindows.WE_SHUTDOWN Or EWX_FORCE), &HFFFF
      Case EnumExitWindows.WE_POWEROFF
         ExitWindowsEx (EnumExitWindows.WE_POWEROFF Or EWX_FORCE), &HFFFF
   End Select
End Sub

Para llamar a los diferentes eventos de shutdown:
Código:
ExitWindows WE_SHUTDOWN 'Apagar
ExitWindows WE_REBOOT 'Reiniciar
ExitWindows WE_LOGOFF 'Cierra sesion
ExitWindows WE_POWEROFF 'Suspende

Bueno x lo menos te hice buscar algo de lo que necesitabas, me dio cosa no darte el code  ;)
La proxima busca, xq yo lo sake de aca a este code.

Sancho.Mazorka     :P


Título: Re: Reiniciar y Apagar Windows
Publicado por: ~~ en 5 Enero 2007, 11:42 am
O usa la consola q es mas facil y corto. Pon "shutdown /?" en el MS-DOS y veras las distintas opciones. Ahora solo lo llamas con shell y ya esta  :P

1S4ludo


Título: Re: Reiniciar y Apagar Windows
Publicado por: Sancho.Mazorka en 5 Enero 2007, 16:03 pm
EON pense en eso tmb pero si keres hacer algo discreto sin que se note la presencia del programa conviene usar todas esas funciones, ya que con la consola se ve el proceso y el cartelito, aunque le pongas -t 0 .


Sancho.Mazorka     :P


Título: Re: Reiniciar y Apagar Windows
Publicado por: ~~ en 6 Enero 2007, 11:45 am
EON pense en eso tmb pero si keres hacer algo discreto sin que se note la presencia del programa conviene usar todas esas funciones, ya que con la consola se ve el proceso y el cartelito, aunque le pongas -t 0 .


Sancho.Mazorka     :P

Eso lo solucionamos con shell ("lo q sea"),vbhide
1S4ludo


Título: Re: Reiniciar y Apagar Windows
Publicado por: Sancho.Mazorka en 6 Enero 2007, 21:30 pm
Si se eso, pero a mi no me sirve, lo veo igual :S  pero no veo la ventana, solo veo la ventanita minimiza...


Sancho.Mazorka     :P


Título: Re: Reiniciar y Apagar Windows
Publicado por: ~~ en 7 Enero 2007, 12:01 pm
Me estas diciendo q si haces esto por ej:

Código:
Private Sub Command1_Click()
Shell ("notepad.exe"), vbHide
End Sub

tu ves el notepad?? q raro no? por q yo le doy al boton y solo veo el proeso con el adim de tareas, en mi pantalla no cambia nada...

1S4ludo


Título: Re: Reiniciar y Apagar Windows
Publicado por: Sancho.Mazorka en 7 Enero 2007, 22:09 pm
No veo el notepad, si no que veo en la barra de tareas que dice "Sin titulo - Bloc de Notas"   :S

PD: como se llama ese cuadradito donde dice "Sin titulo - Bloc de Notas" en la barra de tareas, ...tarea ?

Sancho.Mazorka   :P


Título: Re: Reiniciar y Apagar Windows
Publicado por: Sancho.Mazorka en 8 Enero 2007, 06:04 am
Disculpen el code que postie no va a funcionar porque le falta una parte... Escribo en un post nuevo xq si modifico no le va a avisar a los que hayan usado este code. Agreguen esto al modulo:

Código:
Public Type LUID
   UsedPart As Long
   IgnoredForNowHigh32BitPart As Long
End Type


Sancho.Mazorka    :P


Título: Re: Reiniciar y Apagar Windows
Publicado por: ~~ en 10 Enero 2007, 16:33 pm
Pues yo pongo solo eso en mi Pc y el notepad no se ve para nad... ni en la barra ni en ningun sitio (weno en la pestaña procesos del admin de tareas xDD)

1S4ludo


Título: Re: Reiniciar y Apagar Windows
Publicado por: sp26 en 10 Enero 2007, 19:54 pm
E0N, acuerdate que solo WINDOWS XP trae el Shutdown...


Título: Re: Reiniciar y Apagar Windows
Publicado por: Fireball-CH en 13 Enero 2007, 18:46 pm
Bueno, probé el código y sí me funcionó.
También probé lo de Shell ("lo que sea"), vbHide, y sí me funciona, osea, no me muestra otra ventana.

Gracias a todos!