.Net 注册热键

希望你的程序能使用热键吗?在.Net中如何注册一个热键呢?热键和快捷键一样吗?

1 热键和快捷键能完成差不多的功能。但有所区别。

快捷键是指当前你的程序窗口为活动窗口时,快捷键才会发挥作用。而且一般说来,快捷键是不需要什么辅助键的。

热键是只要你程序在运行,热键就会起作用。如QQ程序:Ctrl+Alt+A

2.如何注册和卸载热键。

[DllImport("user32")]
        public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
        //注册热键的api
        [DllImport("user32")]
        public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //注册热键(窗体句柄,热键ID,辅助键,实键)
            RegisterHotKey(this.Handle, 888, 2, Keys.E);
        }

        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VB.NET注册多个热键,可以使用Windows API函数来实现。以下是一个示例代码,说明如何在VB.NET注册多个热键: 首先,导入系统的用户界面库: Imports System.Runtime.InteropServices 然后,定义一些常量和API函数: Public Class Form1 ' 定义常量 Private Const MOD_CONTROL As Integer = &H2 Private Const WM_HOTKEY As Integer = &H312 ' 导入Windows API函数 <DllImport("user32.dll")> _ Private Shared Function RegisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean End Function <DllImport("user32.dll")> _ Private Shared Function UnregisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer) As Boolean End Function 接下来,在窗体加载事件中注册热键: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 注册热键 RegisterHotKey(Me.Handle, 1, MOD_CONTROL, Keys.A) RegisterHotKey(Me.Handle, 2, MOD_CONTROL, Keys.B) End Sub 接着,在窗体消息处理事件中处理热键消息: Protected Overrides Sub WndProc(ByRef m As Message) If m.Msg = WM_HOTKEY Then Dim hotkeyId As Integer = m.WParam.ToInt32() Select Case hotkeyId Case 1 ' 处理热键1的逻辑 MessageBox.Show("热键1被触发") Case 2 ' 处理热键2的逻辑 MessageBox.Show("热键2被触发") End Select End If MyBase.WndProc(m) End Sub 最后,在窗体关闭事件中取消注册热键: Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing ' 取消注册热键 UnregisterHotKey(Me.Handle, 1) UnregisterHotKey(Me.Handle, 2) End Sub 以上代码演示了如何在VB.NET注册多个热键,并在热键被触发时处理相应的逻辑。你可以根据需要修改和扩展这个示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值