Esempio n. 1
0
        private void StartHookMessages()
        {
            GC.KeepAlive(this);
            lock(this)
            {
                if (_keyboardHookHandle != IntPtr.Zero)
                    return;

//                if (_thisProcessID == 0)
  //                  Win32Calls.GetWindowThreadProcessId(new HandleRef(_control, _control.Handle), out _thisProcessID);

                KeyboardHookObject obj = new KeyboardHookObject(this);
                Win32Calls.HookProc keyboardHookProc = new Win32Calls.HookProc(obj.Callback);
                _keyboardHookRoot = GCHandle.Alloc(keyboardHookProc);

                _keyboardHookHandle = Win32Calls.SetWindowsHookEx(Win32Calls.WH_KEYBOARD, keyboardHookProc, (IntPtr)0, Win32Calls.GetCurrentThreadId());
            }
        }
Esempio n. 2
0
        private void StartHookMessages()
        {
            GC.KeepAlive(this);
            lock (this)
            {
                if (_keyboardHookHandle != IntPtr.Zero)
                {
                    return;
                }

//                if (_thisProcessID == 0)
//                  Win32Calls.GetWindowThreadProcessId(new HandleRef(_control, _control.Handle), out _thisProcessID);

                KeyboardHookObject  obj = new KeyboardHookObject(this);
                Win32Calls.HookProc keyboardHookProc = new Win32Calls.HookProc(obj.Callback);
                _keyboardHookRoot = GCHandle.Alloc(keyboardHookProc);

                _keyboardHookHandle = Win32Calls.SetWindowsHookEx(Win32Calls.WH_KEYBOARD, keyboardHookProc, (IntPtr)0, Win32Calls.GetCurrentThreadId());
            }
        }