![]() |
专题推荐:
Mysql初级教程 |
MySQL数据库技术强化学习 |
nginx负载平衡 |
搜索引擎优化(SEO) |
Linux命令详解 |
Linux网管 |
常用手册: MySQL4.1中文手册 | HTML4.0参考手册 | APACHE 2.0中文在线手册 | MySQL 5.1参考手册 | FreeBSD 7.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);
}
¡¡¡¡ÕâÑùÎҵijÌÐò¾ÍÍê³ÉÁË¡£
(出处:http://www.Gimoo.net)