建站极客
软件编程 C#教程 正文
c#中设置快捷键
所属分类:
软件编程 / C#教程
阅读数:
102
收藏 0
赞 0
分享
最近找了一些资料,是讲在C#中设置快捷键运行方法或程序的 要设置快捷键必须使用user32.dll下面的两个方法。 BOOL RegisterHotKey( HWND hWnd, int id, UINT fsModifiers, UINT vk ); 和 BOOL UnregisterHotKey( HWND hWnd, int id ); 转换成C#代码,那么首先就要引用命名空间System.Runtime.InteropServices;来加载非托管类user32.dll。于是有了: [DllImport("user32.dll", SetLastError=true)] public static extern bool RegisterHotKey( IntPtr hWnd, // handle to window int id, // hot key identifier KeyModifiers fsModifiers, // key-modifier options Keys vk // virtual-key code ); [DllImport("user32.dll", SetLastError=true)] public static extern bool UnregisterHotKey( IntPtr hWnd, // handle to window int id // hot key identifier ); [Flags()] public enum KeyModifiers { None = 0, Alt = 1, Control = 2, Shift = 4, Windows = 8 } 这是注册和卸载全局快捷键的方法,那么我们只需要在Form_Load的时候加上注册快捷键的语句,在FormClosing的时候卸载全局快捷键。同时,为了保证剪贴板的内容不受到其他程序调用剪贴板的干扰,在Form_Load的时候,我先将剪贴板里面的内容清空。 于是有了: private void Form1_Load(object sender, System.EventArgs e) { label2.AutoSize = true; Clipboard.Clear();//先清空剪贴板防止剪贴板里面先复制了其他内容 RegisterHotKey(Handle, 100, 0, Keys.F10); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { UnregisterHotKey(Handle, 100);//卸载快捷键 } 那么我们在别的窗口,怎么让按了快捷键以后调用我的主过程ProcessHotkey()呢? 那么我们就必须重写WndProc()方法,通过监视系统消息,来调用过程: protected override void WndProc(ref Message m)//监视Windows消息 { const int WM_HOTKEY = 0x0312;//按快捷键 switch (m.Msg) { case WM_HOTKEY: ProcessHotkey();//调用主处理程序 break; } base.WndProc(ref m); }
C#实现写系统日志的方法 这篇文章主要介绍了C#实现写系统日志的方法,涉及C#针对系统日志的创建、写入及删除等技巧,非常具有实用价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#编程实现自定义热键的方法 这篇文章主要介绍了C#编程实现自定义热键的方法,涉及C#键盘按键设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#实现读取被进程占用的文件实现方法 这篇文章主要介绍了C#实现读取被进程占用的文件实现方法,涉及C#进程操作及文件读取的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#获取任务栏显示进程的方法 这篇文章主要介绍了C#获取任务栏显示进程的方法,涉及C#针对进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#调用dos窗口获取相关信息的方法 这篇文章主要介绍了C#调用dos窗口获取相关信息的方法,涉及C#调用dos窗口及进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#通过Semaphore类控制线程队列的方法 这篇文章主要介绍了C#通过Semaphore类控制线程队列的方法,涉及Semaphore类操作线程队列的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#使用Dispose模式实现手动对资源的释放 这篇文章主要介绍了C#使用Dispose模式实现手动对资源的释放,涉及C#采用Dispose模式操作资源的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#动态创建button的方法 这篇文章主要介绍了C#动态创建button的方法,涉及C#按钮属性动态设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#编程获取资源文件中图片的方法 这篇文章主要介绍了C#编程获取资源文件中图片的方法,涉及C#针对项目中资源文件操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
WinForm实现窗体最大化并遮盖任务栏的方法 这篇文章主要介绍了WinForm实现窗体最大化并遮盖任务栏的方法,涉及C#实现WinForm窗体全屏显示的实现及调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
查看更多