send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Manual de como bloquear CTRL+ALT+SUP, ALT+TAB, Y OTROS con Visual Basic en WinXP

  • 0 Respuestas
  • 1709 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5283
  • Actividad:
    35%
  • Reputación 28
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Julio 26, 2010, 11:11:14 am »
CTRL+ALT+SUP (TaskManager)

Se debe ingresar la instrucción "DisableTaskMgr" directamente en el regedit con el valor "1" en la carpeta abajo indicada, esto es fácil hacerlo desde VB.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\System]

Value Name: DisableTaskMgr

Data Type: REG_DWORD (DWORD Value)

Value Data: (0 = default, 1 = bloquea Task Manager)

------------------------------------------------------------------

ALT+TAB, CTRL+ESC (Tecla Windows), ALT+F4

Crear el siguiente Módulo (.BAS), no importa como le llamen

Código: Visual Basic
  1.  Option Explicit
  2.  
  3.  Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
  4.  Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
  5.  Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
  6.  Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
  7.  Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
  8.  
  9.  Public Const HC_ACTION = 0
  10.  Public Const WM_KEYDOWN = &H100
  11.  Public Const WM_KEYUP = &H101
  12.  Public Const WM_SYSKEYDOWN = &H104
  13.  Public Const WM_SYSKEYUP = &H105
  14.  Public Const WH_KEYBOARD_LL = 13
  15.  
  16.  Public Type KBDLLHOOKSTRUCT
  17.      vkCode As Long
  18.      scanCode As Long
  19.      flags As Long
  20.      time As Long
  21.      dwExtraInfo As Long
  22.  End Type
  23.  
  24.  Public Enum VirtualKey
  25.    VK_LBUTTON = &H1
  26.    VK_RBUTTON = &H2
  27.    VK_CTRLBREAK = &H3
  28.    VK_MBUTTON = &H4
  29.    VK_BACKSPACE = &H8
  30.    VK_TAB = &H9
  31.    VK_ENTER = &HD
  32.    VK_SHIFT = &H10
  33.    VK_CONTROL = &H11
  34.    VK_ALT = &H12
  35.    VK_PAUSE = &H13
  36.    VK_CAPSLOCK = &H14
  37.    VK_ESCAPE = &H1B
  38.    VK_SPACE = &H20
  39.    VK_PAGEUP = &H21
  40.    VK_PAGEDOWN = &H22
  41.    VK_END = &H23
  42.    VK_HOME = &H24
  43.    VK_LEFT = &H25
  44.    VK_UP = &H26
  45.    VK_RIGHT = &H27
  46.    VK_DOWN = &H28
  47.    VK_PRINTSCREEN = &H2C
  48.    VK_INSERT = &H2D
  49.    VK_DELETE = &H2E
  50.    VK_0 = &H30
  51.    VK_1 = &H31
  52.    VK_2 = &H32
  53.    VK_3 = &H33
  54.    VK_4 = &H34
  55.    VK_5 = &H35
  56.    VK_6 = &H36
  57.    VK_7 = &H37
  58.    VK_8 = &H38
  59.    VK_9 = &H39
  60.    VK_A = &H41
  61.    VK_B = &H42
  62.    VK_C = &H43
  63.    VK_D = &H44
  64.    VK_E = &H45
  65.    VK_F = &H46
  66.    VK_G = &H47
  67.    VK_H = &H48
  68.    VK_I = &H49
  69.    VK_J = &H4A
  70.    VK_K = &H4B
  71.    VK_L = &H4C
  72.    VK_M = &H4D
  73.    vk_n = &H4E
  74.    VK_O = &H4F
  75.    VK_P = &H50
  76.    VK_Q = &H51
  77.    VK_R = &H52
  78.    VK_S = &H53
  79.    VK_T = &H54
  80.    VK_U = &H55
  81.    VK_V = &H56
  82.    VK_W = &H57
  83.    VK_X = &H58
  84.    VK_Y = &H59
  85.    VK_Z = &H5A
  86.    VK_LWINDOWS = &H5B
  87.    VK_RWINDOWS = &H5C
  88.    VK_APPSPOPUP = &H5D
  89.    VK_NUMPAD_0 = &H60
  90.    VK_NUMPAD_1 = &H61
  91.    VK_NUMPAD_2 = &H62
  92.    VK_NUMPAD_3 = &H63
  93.    VK_NUMPAD_4 = &H64
  94.    VK_NUMPAD_5 = &H65
  95.    VK_NUMPAD_6 = &H66
  96.    VK_NUMPAD_7 = &H67
  97.    VK_NUMPAD_8 = &H68
  98.    VK_NUMPAD_9 = &H69
  99.    VK_NUMPAD_MULTIPLY = &H6A
  100.    VK_NUMPAD_ADD = &H6B
  101.    VK_NUMPAD_PLUS = &H6B
  102.    VK_NUMPAD_SUBTRACT = &H6D
  103.    VK_NUMPAD_MINUS = &H6D
  104.    VK_NUMPAD_MOINS = &H6D
  105.    VK_NUMPAD_DECIMAL = &H6E
  106.    VK_NUMPAD_POINT = &H6E
  107.    VK_NUMPAD_DIVIDE = &H6F
  108.    VK_F1 = &H70
  109.    VK_F2 = &H71
  110.    VK_F3 = &H72
  111.    VK_F4 = &H73
  112.    VK_F5 = &H74
  113.    VK_F6 = &H75
  114.    VK_F7 = &H76
  115.    VK_F8 = &H77
  116.    VK_F9 = &H78
  117.    VK_F10 = &H79
  118.    VK_F11 = &H7A
  119.    VK_F12 = &H7B
  120.    VK_NUMLOCK = &H90
  121.    VK_SCROLL = &H91
  122.    VK_LSHIFT = &HA0
  123.    VK_RSHIFT = &HA1
  124.    VK_LCONTROL = &HA2
  125.    VK_RCONTROL = &HA3
  126.    VK_LALT = &HA4
  127.    VK_RALT = &HA5
  128.    VK_POINTVIRGULE = &HBA
  129.    VK_ADD = &HBB
  130.    VK_PLUS = &HBB
  131.    VK_EQUAL = &HBB
  132.    VK_VIRGULE = &HBC
  133.    VK_SUBTRACT = &HBD
  134.    VK_MINUS = &HBD
  135.    VK_MOINS = &HBD
  136.    VK_UNDERLINE = &HBD
  137.    VK_POINT = &HBE
  138.    VK_SLASH = &HBF
  139.    VK_TILDE = &HC0
  140.    VK_LEFTBRACKET = &HDB
  141.    VK_BACKSLASH = &HDC
  142.    VK_RIGHTBRACKET = &HDD
  143.    VK_QUOTE = &HDE
  144.    VK_APOSTROPHE = &HDE
  145.  End Enum
  146.  
  147.  Dim p As KBDLLHOOKSTRUCT
  148.  
  149.  Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  150.    Dim fEatKeystroke As Boolean
  151.    If (nCode = HC_ACTION) Then
  152.      If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
  153.        CopyMemory p, ByVal lParam, Len(p)
  154.        fEatKeystroke = _
  155.          (p.vkCode = VK_CAPSLOCK) Or _
  156.          (p.vkCode = VK_LWINDOWS) Or _
  157.          (p.vkCode = VK_RWINDOWS) Or _
  158.          (p.vkCode = VK_APPSPOPUP) Or _
  159.          ((p.vkCode = VK_SPACE) And ((GetKeyState(VK_ALT) And &H8000) <> 0)) Or _
  160.          ((p.vkCode = VK_TAB) And ((GetKeyState(VK_ALT) And &H8000) <> 0)) Or _
  161.          ((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0))
  162.      End If
  163.    End If
  164.    If fEatKeystroke Then
  165.      LowLevelKeyboardProc = -1
  166.    Else
  167.      LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
  168.    End If
  169.  End Function

Es mucho texto, sugiero Copiar y Pegar.

Para bloquear en cualquier momento se debe escribir la sigueinte setencia:

Código: Visual Basic
  1.  hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)

Para desbloquear (ojo, esto es importantísimo, si no hay que resetear la máquina), se digita la siguiente sentencia:

Código: Visual Basic
  1.  UnhookWindowsHookEx hhkLowLevelKybd

Para bloquear y ocultar la barra de tareas (TaskBar)

En otro módulo (.BAS) digitar:

Código: Visual Basic
  1.  Global Const SW_HIDE = 0
  2.  Global Const SW_SHOWNORMAL = 1
  3.  Global Const SW_SHOW = 5
  4.  
  5.  Public Declare Function FindWindowHandle Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  6.  Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Para que se ejecute las funciones escribir las siguientes sentencias:

Código: Visual Basic
  1.    Dim hWnd As Long
  2.    Dim Res As Long
  3.    hWnd = FindWindowHandle("shell_traywnd", Chr(0))
  4.    Res = ShowWindow(hWnd, SW_HIDE)

Y para desbloquear y mostrar de nuevo:

Código: Visual Basic
  1.    hWnd = FindWindowHandle("shell_traywnd", Chr(0))
  2.    Res = ShowWindow(hWnd, SW_SHOW)

Por último para minimizar todas las ventanas incluso si están en modo gráfico como juegos,

En un módulo (.BAS) digitar lo siguiente:

Código: Visual Basic
  1.  Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
  2.  ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  3.  
  4.  Public Const VK_LWIN = &H5B
  5.  Public Const KEYEVENTF_KEYUP = &H2

Para que se ejecute el proceso dar las siguientes instrucciones:

Código: Visual Basic
  1.    Call keybd_event(VK_LWIN, 0, 0, 0)
  2.    Call keybd_event(&H4D, 0, 0, 0)
  3.    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
« Última modificación: Julio 08, 2011, 10:17:15 am por ANTRAX »


 

¿Te gustó el post? COMPARTILO!



Como leer caracter por caracter de una cadena string

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1304
Último mensaje Julio 26, 2010, 11:42:21 am
por ANTRAX
Cómo ajustar la cadena introducida a formato de hora "00:00:00"

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1380
Último mensaje Julio 26, 2010, 12:36:23 pm
por ANTRAX
Cómo ajustar la cadena introducida a formato numérico: "#,##"

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1078
Último mensaje Julio 26, 2010, 12:38:04 pm
por ANTRAX
Como Imprimir en tamaño especial en Impresoras Matriciales en XP

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1590
Último mensaje Julio 26, 2010, 11:14:36 am
por ANTRAX
Llamada de un formulario mediante el nombre como string

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1185
Último mensaje Julio 26, 2010, 04:08:58 pm
por ANTRAX