Пример #1
0
        private async void mouseButton_Click(object sender, RoutedEventArgs e)
        {
            if (!_mouseHookInstalled)
            {
                if (_process == null || _process.HasExited)
                {
                    if (Environment.Is64BitOperatingSystem && (radio32bit.IsChecked ?? false))
                    {
                        _process = Process.Start(@"c:\windows\syswow64\notepad.exe");
                    }
                    else
                    {
                        _process = Process.Start(@"c:\windows\notepad.exe");
                    }
                }

                if (_mouseHook == null)
                {
                    if (ignoreMove.IsChecked ?? false)
                    {
                        _mouseHook = new MouseHook(_process.Id, MouseMessageTypes.IgnoreMove);
                    }
                    else
                    {
                        _mouseHook = new MouseHook(_process.Id);
                    }

                    ignoreMove.IsEnabled = false;
                }
                else
                {
                    _mouseHook.RemoveAllHandlers();
                }

                _mouseHook.MessageReceived += MouseHook_MessageReceived;
                _mouseHook.LeftButtonUp    += MouseHook_LeftButtonUp;
                _mouseHook.AddHandler(MouseMessageCode.NCLeftButtonUp, MouseHook_NCLButtonUp);
                _mouseHook.RemoveHandler(MouseMessageCode.NCLeftButtonUp, MouseHook_NCLButtonUp);
                mouseButton.Content = "Installing hook...";
                await _mouseHook.InstallAsync();

                _mouseHookInstalled = true;
                mouseButton.Content = "Mouse Unhook";
            }
            else
            {
                _mouseHook.Uninstall();
                _mouseHookInstalled = false;
                mouseButton.Content = "Mouse Hook";
            }
        }