Пример #1
0
 public MouseHook(ILog log)
 {
     logger             = log;
     mouseHookProc      = null;
     mouseHookHandler   = IntPtr.Zero;
     deviceStateChecker = new WindowsInputDeviceStateAdaptor();
     inputSimulator     = new InputSimulator();
     hInstance          = ApiFunctions.LoadLibrary("User32");
 }
Пример #2
0
        public void StartHook()
        {
            if (mouseHookProc == null)
            {
                mouseHookProc = new MouseHookProc(ConfigHook);
            }

            mouseHookHandler = ApiFunctions.SetWindowsHookEx(HookType.WH_MOUSE_LL, mouseHookProc, hInstance, 0);
            logger.Info("Mouse hook started");
        }
Пример #3
0
        public bool Start(string moduleName, VirtualKeyModifier key1, VirtualKeyModifier key2, MouseButton mouseButton)
        {
            _key1        = key1;
            _key2        = key2;
            _mouseButton = mouseButton;
            _hookProc    = HookProc;
            var moduleHandle = GetModuleHandle(moduleName);

            _hookHandle = SetWindowsHookEx(WH_MOUSE_LL, _hookProc, moduleHandle, 0);
            var hookStarted = _hookHandle != IntPtr.Zero;

            return(hookStarted);
        }
Пример #4
0
        public void unhook()
        {
            if (ms_hookprocCallbackDelegate == null)
            {
                return;
            }
            bool ok = NativeMethods.UnhookWindowsHookEx(ms_hHook);

            if (!ok)
            {
                throw new Win32Exception();
            }
            ms_hookprocCallbackDelegate = null;
        }
Пример #5
0
 /// <summary>
 /// Включает отслеживание событий мыши
 /// </summary>
 public void hook()
 {
     try
     {
         IntPtr hInstance = LoadLibrary("User32");
         callbackDelegate = new MouseHookProc(findMoving);
         fhook            = SetWindowsHookEx(WH_MOUSE_LL, callbackDelegate, hInstance, 0);
     }
     catch (Exception ex)
     {
         logger.Error("ERROR:HOOK M:{0}", ex.Message);
         unhook();
         hook();
     }
 }
Пример #6
0
        public void hook()
        {
            if (ms_hookprocCallbackDelegate != null)
            {
                throw new InvalidOperationException("Can't hook more than once");
            }
            IntPtr hInstance = NativeMethods.LoadLibrary("User32");

            ms_hookprocCallbackDelegate = new MouseHookProc(hookProc);
            ms_hHook = SetWindowsHookEx(WH_MOUSE_LL, ms_hookprocCallbackDelegate, hInstance, 0);
            if (ms_hHook == IntPtr.Zero)
            {
                throw new Win32Exception();
            }
        }
Пример #7
0
 static extern IntPtr SetWindowsHookEx(int idHook, MouseHookProc callback, IntPtr hInstance, uint threadId);
Пример #8
0
 public static extern IntPtr SetWindowsHookEx(WindowsHook idHook,
                                              MouseHookProc lpfn, IntPtr hMod, uint dwThreadId);
Пример #9
0
 public static extern IntPtr SetWindowsHookEx(int idHook, MouseHookProc callback, IntPtr hModule, uint dwThreadId);
Пример #10
0
 public void setMouseHookProc(MouseHookProc func)
 {
     MouseDownHook = func;
 }
Пример #11
0
 internal static extern IntPtr MouseHookSetWindowsHookEx(int idHook, MouseHookProc lpfn, IntPtr hMod, uint dwThreadId);