- 浏览: 315041 次
文章分类
- 全部博客 (308)
- Apple (1)
- MAC (6)
- iPhone (1)
- iOS (1)
- Adobe (3)
- Microsoft (23)
- Windows (12)
- WAP (2)
- CMPP (6)
- Eclipse (5)
- .NET (13)
- Router (3)
- ADO.NET (2)
- C# (11)
- WPF (3)
- SqlServer (4)
- Facebook (2)
- JDBC (1)
- Visual Studio (10)
- ActiveMQ (9)
- Java (112)
- Memcached (2)
- NoSQL (7)
- Hadoop (9)
- GlassFish (2)
- Linux (98)
- CentOS (58)
- Spring (10)
- Oracle (17)
- JBOSS (12)
- Webservice (4)
- EJB (7)
- DFS (1)
- Hibernate (9)
- Redis (3)
- Tomcat (5)
- Python (8)
- FastDFS (6)
- Nginx (6)
- RabbitMQ (0)
- Erlang (0)
- Lucene (8)
- Solr (7)
- MySQL (1)
- JavaScript (0)
最新评论
-
zhangy888:
你好,我正好也遇到了这个问题,按照您的设置有如下几个问题,请帮 ...
CXF SOAP 1.2 SOAP 1.1 问题 -
u011493586:
这个SUBMIT写的还不错,只是有的地方没看懂
CMPP发送超长短信息(JAVA版) -
u011493586:
...
CMPP发送超长短信息(JAVA版)
这篇文章以按下Ctrl+Shift+0实现显示桌面为例,采用C#编写的程序代码说明C#自定义快捷键的实现。
读者可以依此类推,通过按下某些键可以实现一些自定义的功能,只要修改下面代码中RegisterHotKey 的参数和case语句中的执行内容即可。
下面给的示例程序中关键处都具有注释。
下面给出一个完整的可运行的C#编写的示例程序
打开VS2005集成开发环境,新建一个windows应用程序,下面的是Form1.cs的全部代码。
(说明:要使该程序正确运行,必须把下面代码中的C:\ShowDesktop.scf替换成你本机的“显示桌面.scf”文件所在的路径)
C#自定义快捷键实现代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; //要使用DllImport语句必须引用该命名空间 using System.Runtime.InteropServices; //要使用Process语句必须引用该命名空间 using System.Diagnostics; namespace WindowsApplication4 { public partial class Form1 : Form { //user32.dll是非托管代码,不能用命名空间的方式直接引用, //所以需要用“DllImport”进行引入后才能使用 [DllImport("user32.dll", SetLastError = true)] public static extern bool RegisterHotKey( IntPtr hWnd, //要定义热键的窗口的句柄 int id, //定义热键ID(不能与其它ID重复) //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效 KeyModifiers fsModifiers, Keys vk //定义热键的内容 ); [DllImport("user32.dll", SetLastError = true)] public static extern bool UnregisterHotKey( IntPtr hWnd, //要取消热键的窗口的句柄 int id //要取消热键的ID ); //定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值) [Flags()] public enum KeyModifiers { None = 0, Alt = 1, Ctrl = 2, Shift = 4, WindowsKey = 8, CtrlAndShift = 6 } private void Form1_Load(object sender, EventArgs e) { //注册热键Shift+S,Id号为100。KeyModifiers.Shift也可以直接使用数字4来表示。 RegisterHotKey(Handle, 100, KeyModifiers.Shift, Keys.S); //注册热键Ctrl+B,Id号为101。KeyModifiers.Ctrl也可以直接使用数字2来表示。 RegisterHotKey(Handle, 101, KeyModifiers.Ctrl, Keys.B); //注册热键Alt+D,Id号为102。KeyModifiers.Alt也可以直接使用数字1来表示。 RegisterHotKey(Handle, 102, KeyModifiers.Alt, Keys.D); //注册热键Ctrl+Alt+0,Id号为103。KeyModifiers.CtrlAndAlt也可以直接使用数字3来表示。 RegisterHotKey(Handle, 103, KeyModifiers.CtrlAndShift, Keys.D0); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //注销Id号为100的热键设定 UnregisterHotKey(Handle, 100); //注销Id号为101的热键设定 UnregisterHotKey(Handle, 101); //注销Id号为102的热键设定 UnregisterHotKey(Handle, 102); //注销Id号为103的热键设定 UnregisterHotKey(Handle, 103); } protected override void WndProc(ref Message m) { const int WM_HOTKEY = 0x0312; //按快捷键 switch (m.Msg) { case WM_HOTKEY: switch (m.WParam.ToInt32()) { case 100: //按下的是Shift+S //此处填写快捷键响应代码 break; case 101: //按下的是Ctrl+B //此处填写快捷键响应代码 break; case 102: //按下的是Alt+D //此处填写快捷键响应代码 break; case 103: //按下的是Ctrl+Shift+0 { Process Myprocess; try { //这段程序功能为:按下Ctrl+Shift+0后显示桌面 Myprocess = new System.Diagnostics.Process(); Myprocess.StartInfo.FileName = @"C:\ShowDesktop.scf"; Myprocess.StartInfo.Verb = "Open"; Myprocess.Start(); } catch (Exception ex) { //程序出错时提示信息 MessageBox.Show( ex.Message, "信息提示!", MessageBoxButtons.OK, MessageBoxIcon.Information); } break; } } break; } base.WndProc(ref m); } public Form1() { InitializeComponent(); } } }
通过上述代码就实现了C#自定义快捷键的设置,大家可以尝试一下。
发表评论
-
C#调用C++的库 P/Invoke工具集
2015-04-28 15:06 1297p/Invoke可以使用工具辅助自动生成,以减少混淆 ... -
VisualSVN 破解
2014-10-08 17:02 1068首先,去VisualSVN官网下载最新版本。 传送门: h ... -
C#的Dictionary值排序和SortedDictionary键排序
2013-03-25 08:43 2888对一个Dictionary<TKey, TValue& ... -
C# Invalidate() Update() Refresh()的区别
2012-12-02 17:41 1438Control.Invalidate方法:使控件的特定区域无效 ... -
enum : C#中的枚举类型,原来有这么多用法
2012-07-26 15:58 1444今天来的时候打开了MSDN扫了一眼C#里的枚举类型~~ 蓦然发 ... -
资源文件在国际化中的运用(WinForm)
2012-04-19 10:29 1097国际化的软件往往需要多种语言资源,如何在C#的WinFo ... -
C#保存文件或读取数据库文件 另存为
2012-04-18 09:51 2021/// <summary> /// ... -
WPF线程处理模型
2012-04-17 10:20 1822http://msdn.microsoft.com/ ... -
WPF:RoutedUICommand和MenuItem
2012-04-16 10:51 1707把RoutedUICommand放在MenuIte ... -
C# using语句使用心得总结
2012-04-11 12:04 1086这里是关于C# using语句使用心得总结,us ...
相关推荐
代码主要实现类似有道词典的软件设置中的自定义快捷键功能。 比如:当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。 最终的效果如下图所示: 核心代码如下所示: 复制...
本教程将聚焦于使用C#实现Windows全局快捷键,涉及的主要技术包括XML操作和WinAPI调用。 首先,我们需要理解什么是全局快捷键。全局快捷键,顾名思义,是在任何应用程序窗口或操作系统界面背景下都能响应的键盘组合...
在C#窗体应用程序中,自定义快捷键可以极大地提高用户界面的交互性和效率。本文主要探讨如何在C#中创建并管理自定义的快捷键功能。首先,我们需要理解两个关键函数:`RegisterHotKey()` 和 `UnregisterHotKey()`,...
通过上述步骤,我们成功地实现了 `TextBox` 控件的自定义快捷键功能。这种定制化的能力不仅提高了应用程序的可用性,还增强了用户体验。开发者可以根据实际应用需求,继续扩展和完善自定义快捷键的功能,例如支持更...
本教程将详细讲解如何使用C#语言实现Winform应用中的自定义快捷键,包括组合键(如Ctrl、Shift等)的设置和处理。 首先,我们需要了解快捷键的基本概念。快捷键是一种通过键盘上的特定组合键来快速执行特定操作的...
在.NET框架中,C#语言提供了丰富的功能来创建和封装自定义控件,这使得开发者能够根据特定需求扩展Windows Forms或WPF应用的功能。本文将深入探讨如何利用C#进行自定义控件的开发和封装,以及在"WindowsForms...
3. **交互性增强**:自定义控件通常会提供更多的交互方式,比如可以通过键盘快捷键操作,或者自定义的鼠标事件处理,以提升用户的使用体验。 4. **可配置性**:作为自定义控件,它应该具有高度的可配置性,如复选框...
Unity快捷键开发功能,支持动态改键。 传统的快捷键只是检测键盘事件,这个是能支付用户自定义设置快捷键的事件响应对象。
本文将详细阐述四种在C#中实现快捷键的方法,以帮助开发者为按钮(button)和其他控件添加快捷键功能。 1. **第一种方法:Alt + * (按钮快捷键)** 这种方法适用于像button、label、menuStrip这样的控件。只需在...
- 用户自定义:考虑允许用户自定义快捷键,以满足不同用户的习惯和需求。 总的来说,定义和处理C#全局快捷键是提高用户体验的关键部分。通过合理地设计和实现,你可以为用户提供更加便捷的交互方式。同时,隐藏...
本教程将深入探讨如何创建并使用C#自定义文本框。 首先,我们从`InputBox.cs`这个文件名来看,它很可能是实现自定义文本框功能的主要代码文件。在C#中,类通常被定义在`.cs`文件中,因此`InputBox`可能是一个自定义...
Visual Studio允许用户自定义快捷键以适应个人习惯。通过“工具”菜单下的“选项”设置,进入“环境”>“键盘”,可以为任何命令分配新的快捷键。 四、提高效率的技巧 1. **代码片段**:使用`Ctrl+J`或`Ctrl+K, ...
以上仅是C#编程中常见的一些快捷键,实际上IDE如Visual Studio提供了更多的快捷方式,可以根据个人习惯进行自定义设置。熟练掌握这些快捷键,可以显著提高编程效率,让初学者能更专注于解决问题而不是频繁的鼠标操作...
本主题主要围绕"C#快捷键 vs vc快捷键",介绍这两个常用开发环境下的高效操作技巧。 首先,我们来看C#快捷键。C#是微软开发的一种面向对象的编程语言,广泛用于Windows应用程序、Web服务以及游戏开发。在Visual ...
在编程世界中,效率至关重要,而快捷键是提升开发速度的有效工具之一。本文将深入探讨Visual C# 2005中的默认...此外,Visual Studio允许自定义快捷键,可以根据个人喜好和工作流进行调整,以达到最佳的工作效率。
C#作为.NET框架下的主要编程语言,提供了丰富的API和类库来实现这一功能。本篇将深入探讨如何在C#中设置热键快捷键,以及相关的重要知识点。 首先,我们需要了解的是Windows消息系统。在Windows操作系统中,所有的...
本篇将详细介绍如何在C#应用中实现快捷键功能。 首先,我们需要了解Windows Forms或WPF应用程序中的快捷键处理机制。在Windows Forms中,快捷键通常是通过控件的`Keys`属性和`Modifiers`属性结合来定义的。例如,...
在C#编程中,熟练掌握快捷键能够极大地提高开发效率,尤其在处理Word文档时,这些快捷键的应用显得尤为重要。以下是一些常见的C#开发工具...在实际使用中,可以根据个人习惯自定义快捷键,以更好地适应个人的工作流程。
Visual Studio还允许用户自定义快捷键,以适应个人的编程习惯。为了更好地利用这些快捷键,建议经常练习,将它们融入日常编码中。 总之,掌握.NET快捷键是提升开发效率的关键,无论是基本的编辑操作还是复杂的调试...