使用Windows消息按住Alt按钮

本文关键字:Alt 按钮 Windows 消息 使用 | 更新日期: 2023-09-27 17:58:30

如何在窗口消息中按住ALT按钮?

有WM_KEYHOLD或类似的东西吗?

这是屏幕截图的代码,但我想有什么遗漏了。我认为我使用的密钥代码不好,对于0x70,它发送F1。而对于0x46,它发送一个不正常的窗口声音。

    const uint WM_SYSKEYDOWN = 260;
    const uint VK_MENU = 18;//virtual key code of Alt key
    const uint VK_SNAPSHOT = 44;//virtual key code of Snapshot key
    [DllImport("User32.Dll")]
    public static extern long PostMessage(IntPtr hWnd, UInt32 wMsg, long wParam, long lParam);
    [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(String sClassName, String sAppName);
    [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
    public static extern IntPtr GetForegroundWindow();
    private void timer1_Tick(object sender, EventArgs e)
    {
        IntPtr hwnd = GetForegroundWindow();
        //PostMessage(hwnd, WM_SYSKEYDOWN, VK_MENU, 1);
        PostMessage(hwnd, WM_SYSKEYDOWN, VK_SNAPSHOT, 1);
    }

使用Windows消息按住Alt按钮

DanielB链接的文档引用了定义ALT状态的lParam的第29位,你尝试过吗?

Bit 29-上下文代码。如果在按下ALT键的同时按下ALT键,则该值为1;如果由于没有窗口具有键盘焦点而将WM_ SYSKEYDOWN消息发布到活动窗口。

根据我的理解,发送WM_SYSKEYDOWN/WM_KEYDOWN就足够了。请参阅文档