
25/05/2008, 11:07
|
| | Fecha de Ingreso: enero-2007 Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 18 años, 3 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. |