All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
php上传文件功能函数_php资料_编程技术
ASP.NET上传文件面面观_[Asp.Net教程]
LINQ体验(16)——LINQ,to,SQL语句之DataContext_[Asp.Net教程]
限定GridView宽度并加上滚动条_[Asp.Net教程]
实现基于php和MySQL的动态树型菜单_php资料_编程技术
MySQL,5.0,数据库的新特性的存储过程_php资料_编程技术
ASP.NET,2.0防止同一用户同时登陆_[Asp.Net教程]
ASP.NET,2.0服务器控件之实现验证控件_[Asp.Net教程]
简单学习动态网页制作PHP中的Cookies_php资料_编程技术
基于Gettext的asp.net网站多语言解决方案_[Asp.Net教程]
Reading number is top 10 pictures
大人物的礼物
The real super beauty15
The little woman's bright wire3
穷哥们向美女求婚攻略
中国女孩大胆自拍,显露完美身材2
A man's favorite things1
Sora aoi after swimming
The little woman's bright wire2
yy365网站上的美女3
男人巳快沦落成动物了
Download software ranking
Boxer's Top ten classic battle7
Sora aoi 120 minutes
Tram sex maniac 2 (H) rar bag3
Photoshop 8.0图象编辑软件
SP3 for SQL2000
Boxer's Top ten classic battle8
美女写真3
Tram sex maniac 2 (H) rar bag11
I'm come from Beijing1
WebService在.NET中的实战应用教学视频 → 第1集
aaa published in(发表于) 2013/12/18 8:10:21 Edit(编辑)
在Visual,C#程序中使用系统热键_.net资料_编程技术

在Visual,C#程序中使用系统热键_.net资料_编程技术

在Visual C#程序中使用系统热键_.net资料_编程技术-你的首页-uuhomepage.com

  1.首先引入System.Runtime.InteropServices


using System.Runtime.InteropServices;


  2.在类内部声明两个API函数,它们的位置和类的成员变量等同.


[System.Runtime.InteropServices.DllImport("user32.dll")] //申明API函数
public static extern bool RegisterHotKey(
IntPtr hWnd, // handle to window
int id, // hot key identifier
uint fsModifiers, // key-modifier options
Keys vk // virtual-key code
);
[System.Runtime.InteropServices.DllImport("user32.dll")] //申明API函数
public static extern bool UnregisterHotKey(
IntPtr hWnd, // handle to window
int id // hot key identifier
);


  3.定义一个KeyModifiers的枚举,以便出现组合键


public enum KeyModifiers
{
 None = 0,
 Alt = 1,
 Control = 2,
 Shift = 4,
 Windows = 8
}


  4.在类的构造函数出注册系统热键


  示例,下例注册了四个热键:


public MainForm()
{
 InitializeComponent();
 RegisterHotKey(Handle, 100, 2, Keys.Left); // 热键一:Control +光标左箭头
 RegisterHotKey(Handle, 200, 2, Keys.Right); / /热键一:Control +光标右箭头
 RegisterHotKey(Handle, 300, 2, Keys.Up); // 热键一:Control +光标上箭头
 RegisterHotKey(Handle, 400, 2, Keys.Down); // 热键一:Control +光标下箭头


 ....;
}


  5.重写WndProc()方法,通过监视系统消息,来调用过程


  示例:


protected override void WndProc(ref Message m)//监视Windows消息
{
 const int WM_HOTKEY = 0x0312; //如果m.Msg的值为0x0312那么表示用户按下了热键
 switch (m.Msg)
 {
  case WM_HOTKEY:
  ProcessHotkey(m); //按下热键时调用ProcessHotkey()函数
  break;
 }
 base.WndProc(ref m); //将系统消息传递自父类的WndProc
}


  5.不用说,我们接下来需要实现ProcessHotkey函数:


//按下设定的键时调用该函数


private void ProcessHotkey(Message m)
{
 IntPtr id = m.WParam; //IntPtr用于表示指针或句柄的平台特定类型
 //MessageBox.Show(id.ToString());
 string sid = id.ToString();
 switch (sid)
 {
  case "100": DecreseVolumnb(); break; // 按下Control +光标左箭头,调用函数DecreseVolumnb();
  case "200": AddVolumnb(); break; // 按下Control +光标右箭头,调用函数AddVolumnb()
  case "300":// 按下Control +光标上箭头,显示窗体
   this.Visible = true;
   break;
  case "400":// 按下Control +光标下箭头,隐藏窗体
   this.Visible = false;
   break;
 }
}


  很明显接下来分别实现函数DecreseVolumnb(); 和AddVolumnb(); 即可.


  6.最后别忘了在程序退出时取消热键的注册


private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
 UnregisterHotKey(Handle, 100); //卸载第1个快捷键
 UnregisterHotKey(Handle, 200); //缷载第2个快捷键
 UnregisterHotKey(Handle, 300); //卸载第3个快捷键
 UnregisterHotKey(Handle, 400); //缷载第4个快捷键
}


  以上就是在C#程序中使用系统热键的整个过程。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.