David
发布于 2014-09-22 / 6 阅读 / 0 评论 / 0 点赞

C# 實現全局熱鍵 – 程序內快捷鍵

此系列的最後一篇,超級簡單。
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            const int WM_KEYDOWN = 0x100;
            const int WM_SYSKEYDOWN = 0x104;

            if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
            {
                switch (keyData)
                {
                    case Keys.Alt | Keys.B:
                        this.Text = "按下了Alt+B";
                        break;
                    case Keys.Control |Keys.Alt |Keys.A:
                        this.Text = "按下了Ctrl+Alt+A";
                        break;
                }
            }

            return base.ProcessCmdKey(ref msg, keyData);
        }
重載窗體的ProcessCmdKey,在裡邊實現對指定按鍵進行相應操作,一般情況下我不大會單獨使用Alt鍵,有時候會出現熱鍵失效的情況,這裡的代碼僅供參考。 篇幅有點小,剛剛還有猶豫好不好寫在上一篇文章後,想想還是獨立寫篇好,兩種方式差別有點大。