Revivo, encontre la siguiente manera, pero con el tiempo la memoria RAM se dispara :S!!! Existe otra manera mas eficiente? Un saludo
Public Const MOD_CONTROL As Long = &H2
Public Const MOD_SHIFT As Long = &H4
Public Const MOD_ALT = &H1
Public Function NewWindowProc( _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
If Msg = &H82 Then
Call SetWindowLong(hwnd, GWL_WNDPROC, WinProc)
Call UnregisterHotKey(hwnd, 1)
End If
If Msg = &H312 Then
MSgbox "Combinación presionada"
End If
NewWindowProc = CallWindowProc(WinProc, hwnd, Msg, wParam, lParam)
End Function
Call RegisterHotKey(hwnd, 1, teclaWparamEnCadena("[SHIFT] + [CONTROL] + [D]"), teclaLparamEnCadena("[SHIFT] + [CONTROL] + [D]"))
Public Function teclaWparamEnCadena(cadena As String) As Long
Dim vDatos As Variant
Dim result As Long
Dim i As Integer
vDatos = Split(cadena, "+")
result = 0
For i = 0 To UBound(vDatos)
Select Case Trim(vDatos(i))
Case "[SHIFT]":
result = result + MOD_SHIFT
Case "[ALT]"
result = result + MOD_ALT
Case "[CONTROL]"
result = result + MOD_CONTROL
End Select
Next
teclaWparamEnCadena = result
End Function