Пример #1
0
 /// <summary>
 /// グローバルフックを登録します。
 /// </summary>
 /// <param name="proc">コールバックメソッドを指定します。</param>
 /// <returns>SetWindowsHookEx 関数の戻り値を返します。</returns>
 private IntPtr SetHook(KeyboardHookEventHandler proc)
 {
     using (var module = Process.GetCurrentProcess().MainModule)
     {
         return(SetWindowsHookEx((int)User32.WHs.WH_KEYBOARD_LL, proc, GetModuleHandle(module.ModuleName), 0));
     }
 }
Пример #2
0
            /// <summary>
            /// 重载:设置Keyboard钩子(开始Hook)
            /// </summary>
            public void InstallHook(UserKeyboardHookEventHandler userKeyboardProc)
            {
                userProcKeyboard = userKeyboardProc;                                   //传入UserKeyboardHookEventHandler方法的入口地址
                procKeyboard     = new KeyboardHookEventHandler(KeyboardHookCallback); //告知钩子子程的具体实现

                hookID = SetWindowsHookEx(
                    HookType,                                                           // 钩子的类型
                    procKeyboard,                                                       //钩子子程的入口地址,当钩子钩到任何消息后便调用钩子子程
                    GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), //应用程序实例的句柄
                    0);                                                                 //0表示钩子子程与所有的线程关联(全局钩子)
            }
Пример #3
0
 private static extern IntPtr SetWindowsHookEx(int idHook, KeyboardHookEventHandler lpfn, IntPtr hMod, uint dwThreadId);
Пример #4
0
        /// <summary>
        /// キーボードフックを開始します。
        /// </summary>
        public void Hook()
        {
            this._hookHandler = HookProc;

            this._hookID = SetHook(this._hookHandler);
        }
Пример #5
0
 private static extern IntPtr SetWindowsHookEx(int idHook, KeyboardHookEventHandler lpfn, IntPtr hMod, uint dwThreadId);
Пример #6
0
            /// <summary>
            /// 重载:设置Keyboard钩子(开始Hook)
            /// </summary>
            public void InstallHook(UserKeyboardHookEventHandler userKeyboardProc)
            {
                userProcKeyboard = userKeyboardProc; //传入UserKeyboardHookEventHandler方法的入口地址
                procKeyboard = new KeyboardHookEventHandler(KeyboardHookCallback); //告知钩子子程的具体实现

                hookID = SetWindowsHookEx(
                    HookType,  // 钩子的类型
                    procKeyboard,  //钩子子程的入口地址,当钩子钩到任何消息后便调用钩子子程
                    GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), //应用程序实例的句柄
                    0); //0表示钩子子程与所有的线程关联(全局钩子)
            }