<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      注冊系統熱鍵類(原創)

       

       

      C#注冊系統熱鍵類,參考多篇文章封裝而成,只需一個構造函數即可完成,尤其適合于WPF

      參考文章:http://www.rzrgm.cn/dabaopku/archive/2010/02/21/1670793.html

      源碼下載

      系統熱鍵類
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Windows;
      using System.Windows.Forms;
      using System.Windows.Interop;
      using System.Collections;

      namespace ThunderStarter
      {
      /// <summary>
      /// 直接構造類實例即可注冊
      /// 自動完成注銷
      /// 注意注冊時會拋出異常
      /// </summary>
      class HotKey
      //注冊系統熱鍵類
      //熱鍵會隨著程序結束自動解除,不會寫入注冊表
      {
      #region Member

      int KeyId ; //熱鍵編號
      IntPtr Handle ; //窗體句柄
      Window window ; //熱鍵所在窗體
      uint Controlkey ; //熱鍵控制鍵
      uint Key ; //熱鍵主鍵

      public delegate void OnHotkeyEventHandeler(); //熱鍵事件委托
      public event OnHotkeyEventHandeler OnHotKey=null; //熱鍵事件

      static Hashtable KeyPair = new Hashtable(); //熱鍵哈希表

      private const int WM_HOTKEY = 0x0312; // 熱鍵消息編號

      public enum KeyFlags //控制鍵編碼
      {
      MOD_ALT
      = 0x1,
      MOD_CONTROL
      = 0x2,
      MOD_SHIFT
      = 0x4,
      MOD_WIN
      = 0x8
      }

      #endregion

      /// <summary>
      /// 構造函數
      /// </summary>
      /// <param name="win">注冊窗體</param>
      /// <param name="control">控制鍵</param>
      /// <param name="key">主鍵</param>
      public HotKey(Window win, HotKey.KeyFlags control, Keys key)
      //構造函數,注冊熱鍵
      {
      Handle
      = new WindowInteropHelper(win).Handle;
      window
      =win;
      Controlkey
      = (uint)control;
      Key
      = (uint)key;
      KeyId
      =(int)Controlkey+(int)Key*10;
      if (HotKey.KeyPair.ContainsKey(KeyId))
      {
      throw new Exception("熱鍵已經被注冊!");
      }

      //注冊熱鍵
      if(false == HotKey.RegisterHotKey(Handle, KeyId, Controlkey, Key))
      {
      throw new Exception("熱鍵注冊失敗!");
      }
      if(HotKey.KeyPair.Count==0){
      //消息掛鉤只能連接一次!!
      if(false == InstallHotKeyHook(this))
      {
      throw new Exception("消息掛鉤連接失敗!");
      }
      }

      //添加這個熱鍵索引
      HotKey.KeyPair.Add(KeyId, this);

      }

      #region core

      [System.Runtime.InteropServices.DllImport(
      "user32")]
      private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint controlKey, uint virtualKey);

      [System.Runtime.InteropServices.DllImport(
      "user32")]
      private static extern bool UnregisterHotKey(IntPtr hWnd, int id);

      static private bool InstallHotKeyHook(HotKey hk)
      //安裝熱鍵處理掛鉤
      {
      if (hk.window == null || hk.Handle==IntPtr.Zero)
      return false;

      //獲得消息源
      System.Windows.Interop.HwndSource source = System.Windows.Interop.HwndSource.FromHwnd(hk.Handle);
      if (source==null) return false;

      //掛接事件
      source.AddHook(HotKey.HotKeyHook);
      return true;
      }

      static private IntPtr HotKeyHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
      //熱鍵處理過程
      {
      if (msg == WM_HOTKEY)
      {
      HotKey hk
      = (HotKey)HotKey.KeyPair[(int)wParam];
      if (hk.OnHotKey != null) hk.OnHotKey();
      }
      return IntPtr.Zero;
      }

      ~HotKey()
      //析構函數,解除熱鍵
      {
      HotKey.UnregisterHotKey(Handle, KeyId);
      }

      #endregion
      }
      }

       

      posted on 2010-02-22 16:13  大寶pku  閱讀(1725)  評論(3)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产日韩精品秘 入口| 99久久国产福利自产拍| 色偷偷偷久久伊人大杳蕉| 夜夜添无码一区二区三区| 视频二区中文字幕在线| 亚洲一区二区中文字幕| 成人一区二区三区久久精品| 一本色道久久综合熟妇人妻| 亚洲码和欧洲码一二三四 | 精品精品国产国产自在线| 国产成人精品18| 麻豆一区二区中文字幕| 福利一区二区不卡国产| 亚洲尤码不卡av麻豆| 亚洲五月丁香综合视频| 亚洲第一狼人成人综合网| xbox免费观看高清视频的软件 | 欧洲亚洲国内老熟女超碰| 亚洲高清 一区二区三区| 欧洲中文字幕国产精品| 亚洲自拍偷拍激情视频| 2019国产精品青青草原| 成人h动漫精品一区二区无码| 欧美丰满熟妇乱XXXXX网站| 久久伊99综合婷婷久久伊| 欧美怡春院一区二区三区| 久久久精品波多野结衣av| 国产h视频在线观看| 深夜福利国产精品中文字幕| 无卡无码无免费毛片| 久久99国产精品尤物| 朝鲜女子内射杂交bbw| 国产成人精彩在线视频| 乌克兰美女浓毛bbw| 蜜桃亚洲一区二区三区四| 成人亚洲一级午夜激情网| 亚洲 卡通 欧美 制服 中文 | 日韩精品中文女同在线播放| 久久天天躁狠狠躁夜夜婷| 中文字幕有码无码AV| 国产区成人精品视频|