Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/05/2008, 11:07
boluart
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 4 meses
Puntos: 13
Respuesta: Interseptar pulsado de F4

Pues bienvenido a la programacion.

Aqui hay un hilo que te puede ayudar.
http://www.elguille.info/vb/API/deshabilitarAltTab.asp

O si queres ir directo al codigo:

En un Form
Código:
OptionExplicit
PrivateSub cmdCerrar_Click() 
Unload Me
EndSub
PrivateSub cmdHook_Click() 
HookKeyB App.hInstance 
EndSub
PrivateSub cmdUnHook_Click() 
UnHookKeyB 
EndSubPrivateSub Form_QueryUnload(Cancel AsInteger, UnloadMode AsInteger)
UnHookKeyB 
EndSub 
En un Module
Código:
OptionExplicit
Private mHook AsLong
PrivateConst WH_KEYBOARD_LL AsLong = 13& 
PrivateType tagKBDLLHOOKSTRUCT 
vkCode As Long 
scanCode As Long 
flags As Long 
time As Long 
dwExtraInfo As Long 
EndType
 
PrivateConst VK_TAB AsLong = &H9 
PrivateConst VK_CONTROL AsLong = &H11 
PrivateConst VK_ESCAPE AsLong = &H1B 
Const LLKHF_ALTDOWN AsLong = &H20& 
PrivateConst HC_ACTION AsLong = 0& 
PrivateDeclareFunction SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook AsLong, ByVal lpfn AsLong, ByVal hMod AsLong, ByVal dwThreadId AsLong) AsLong
PrivateDeclareFunction UnhookWindowsHookEx Lib "user32" (ByVal hHook AsLong) AsLong
PrivateDeclareFunction CallNextHookEx Lib "user32" (ByVal hHook AsLong, ByVal nCode AsLong, ByVal wParam AsLong, ByVal lParam AsLong) AsLong
PrivateDeclareFunction GetAsyncKeyState Lib "user32" (ByVal vKey AsLong) AsInteger
PrivateDeclareSub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination AsAny, Source AsAny, ByVal Length AsLong) 
PublicFunction LLKeyBoardProc(ByVal nCode AsLong, ByVal wParam AsLong, ByVal lParam AsLong ) AsLong
Dim pkbhs As tagKBDLLHOOKSTRUCT 
Dim ret As Long 
ret = 0 
CopyMemory pkbhs, ByVal lParam, Len(pkbhs) 
If nCode = HC_ACTION Then
If pkbhs.vkCode = VK_ESCAPE Then 
MsgBox "Esc"
End If ' 
EndIf'
ret = CallNextHookEx(mHook, nCode, wParam, lParam) 
LLKeyBoardProc = ret '
EndFunction
PublicSub HookKeyB(ByVal hMod AsLong) 
mHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LLKeyBoardProc, hMod, 0&) 
EndSub
PublicSub UnHookKeyB() 
If mHook <> 0 Then
UnhookWindowsHookEx mHook 
EndIf
EndSub
 
__________________
Vivir para ser buenos y ser buenos para servir mejor.