Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C的快捷键#_C#_Keyboard Shortcuts - Fatal编程技术网

C# 使用C的快捷键#

C# 使用C的快捷键#,c#,keyboard-shortcuts,C#,Keyboard Shortcuts,我想创建一个简单的应用程序,它有一个发送键(比如快捷键)。情况是,只要创建的应用程序处于非活动状态,只要系统正在运行,系统仍会识别用户的按键 简而言之,只要按下(window+D)键,无论您在哪个应用程序/窗口中,都会立即显示桌面 有谁能帮助我在C#2005中如何做到这一点吗?请使用以下命令: [DllImport("user32.dll")] private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifi

我想创建一个简单的应用程序,它有一个发送键(比如快捷键)。情况是,只要创建的应用程序处于非活动状态,只要系统正在运行,系统仍会识别用户的按键

简而言之,只要按下(window+D)键,无论您在哪个应用程序/窗口中,都会立即显示桌面

有谁能帮助我在C#2005中如何做到这一点吗?请使用以下命令:

[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);

然后,要注册热键

RegisterHotKey(hWndNotify, id,
                    (uint)_getModifierKeys(_isAlt, _isCtrl, _isShift, _isWin),
                    (uint)_key);
在主机hWnd中,侦听WM_HOTKEYREADY,然后使用

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;
}

您是否可以浏览您的其他问题,并将所有正确帮助您的答案标记为已接受的答案(勾选)。这将给那些帮助你和你自己的人一个机会,鼓励其他人帮助你。
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;
}