Usar la siguiente:
[DllImport("user32.dll")]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
[DllImport("user32.dll")]
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
y
[Flags]
public enum ModifierKeys : uint
{
Alt = 1,
Control = 2,
Shift = 4,
Win = 8
}
private ModifierKeys _getModifierKeys(bool isAlt, bool isCtrl, bool isShift, bool isWin)
{
return (isAlt ? ModifierKeys.Alt : 0) |
(isCtrl ? ModifierKeys.Control : 0) |
(isShift ? ModifierKeys.Shift : 0) |
(isWin ? ModifierKeys.Win : 0);
}
entonces, para registrar su tecla de acceso directo,
RegisterHotKey(hWndNotify, id,
(uint)_getModifierKeys(_isAlt, _isCtrl, _isShift, _isWin),
(uint)_key);
en el huésped CVent, escuchar WM_HOTKEYREADY, a continuación, comprobar si hay coincidencias con su tecla de acceso directo utilizando
public bool Matches(ref Message m)
{
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
ModifierKeys modifier = (ModifierKeys)((int)m.LParam & 0xFFFF);
if ((key == Key) &&
(modifier == Modifier))
{
return true;
}
return false;
}
Puede usted revise sus otras preguntas y vea marcar las respuestas que le ayudaron correctamente, como la respuesta aceptada (la marca). Esto le dará reputación a aquellos que lo ayudan a usted y a usted mismo, lo que alienta a otras personas a ayudar. –