コード例 #1
0
 private static KeyboardFilter initFilter()
 {
     // инициализация рабочего экземпляра фильтра
     var _filter = new KeyboardFilter();
     callback = new KeyActionCallback(keyDownCallback);
     _filter.KeyDownCallback += new KeyActionCallback(keyDownCallback);
     _filter.KeyUpCallback += new KeyActionCallback(keyUpCallback);
     return _filter;
 }
コード例 #2
0
        /// <summary>
        /// Удаление фильтра из системы
        /// </summary>
        /// <param name="filter">Фильтр который необходимо удалить</param>
        public void RemoveFilter(KeyboardFilter filter)
        {
            if (!filter.IsActive) throw new Exception("Фильтр не зарегистриован в системе");

            if (!NativeFunctions.UnhookWindowsHookEx(filter.IdHook)) // нативное удаление хука из систему
                throw new Exception("Хук не был удален из системы. Возможно он не был подключен.");

            filter.IsActive = false;
            _activeFilters.Remove(filter);
        }
コード例 #3
0
 /// <summary>
 /// Добавляет фильтр в систему
 /// </summary>
 /// <param name="filter">Информация о фильтре, который необходимо подключить</param>
 public void ApplyFilter(KeyboardFilter filter)
 {
     using (Process curProcess = Process.GetCurrentProcess())
     using (ProcessModule curModule = curProcess.MainModule)
     {
         filter.IdHook = NativeFunctions.SetWindowsHookEx(filter.IdTypeHook, filter.HookCallback,
                                     NativeFunctions.GetModuleHandle(curModule.ModuleName), 0); // нативное добавление хука в систему
     }
     filter.IsActive = true; // флаг активности хука
     _activeFilters.Add(filter);
 }