Cómo usar sendmessage WM_KEYDOWN en vb para enviar claves especiales (enviar al escritorio)
Aunque no utiliza sendmessage, resuelve su problema. Opción Función de declaración privada explícita SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long). , lParam como cualquiera) Siempre que la declaración privada sea subkeybd_event Lib "user32" (ByVal bVk como byte, ByVal bScan como byte, ByVal dwFlags mientras, ByVal dwExtraInfo mientras) Función de declaración privada MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMillisegundos As Long) Private Const KEYEVENTF_KEYUP = amp H2 Private Sub Command1_Click() 'Silenciar' keybd_event HAD, MapVirtualKey(amp; ; HAD, 0), 0, 0 'Dormir 100 'keybd_event amp; HAD, MapVirtualKey(y HAD, 0), KEYEVENTF_KEYUP, 0 'Bajar volumen' keybd_event HAE, MapVirtualKey(y HAE, 0), 0, 0 'Sleep 100 ' keybd_event amp;HAE, MapVirtualKey(amp;HAE, 0), KEYEVENTF_KEYUP, 0 'Aumento de volumen keybd_event amp;HAF, MapVirtualKey(amp;HAF, 0), 0, 0 Sleep 100 keybd_event amp;HAF, MapVirtualKey (amp;HAF, 0), KEYEVENTF_KEYUP, 0 Fin Sub