-
Похожий контент
-
- 3 ответа
- 1 666 просмотров
-
- 12 ответов
- 3 166 просмотров
-
Креш при изменение в RunTime у формы BorderStyle/Transperency [OSX]
От Ilya.Z,
- fullscreen
- transperency
- (и ещё 3 )
- 0 ответов
- 2 896 просмотров
-
- 1 ответ
- 3 871 просмотр
-
- 7 ответов
- 4 562 просмотра
-
- 9 ответов
- 3 785 просмотров
-
- 1 ответ
- 4 607 просмотров
-
- 4 ответа
- 2 273 просмотра
-
- 3 ответа
- 2 121 просмотр
-
- 5 ответов
- 5 804 просмотра
-
-
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Вопрос
dnekrasov
Создаю глобальный hook на несколько событий:
{$IFDEF MACOS} var EvtTap: CFMachPortRef; RunLoopSource: CFRunLoopSourceRef; {$ENDIF} ... procedure CreateGlobalHook; {$IFDEF MACOS} var EvtMask: UInt64; {$ENDIF} begin {$IFDEF MACOS} if EvtTap = nil then begin EvtMask := (1 shl kCGEventKeyDown) or (1 shl kCGEventFlagsChanged) or (1 shl kCGEventLeftMouseUp); EvtTap := CGEventTapCreate(kCGAnnotatedSessionEventTap, kCGTailAppendEventTap, kCGEventTapOptionListenOnly, EvtMask, @EventTapHandler, nil); RunLoopSource := CFMachPortCreateRunLoopSource(kCFAllocatorDefault, EvtTap, 0); CFRunLoopAddSource(CFRunLoopGetCurrent, RunLoopSource, kCFRunLoopCommonModes); end; CGEventTapEnable(EvtTap, 1); {$ENDIF} end; function EventTapHandler(proxy: CGEventTapProxy; type_: CGEventType; event: CGEventRef; refcon: Pointer): CGEventRef; cdecl; {$IFDEF MACOS} var iKey: Integer; iType: Integer; {$ENDIF} begin {$IFDEF MACOS} Result := event; iType := CGEventGetType(event); iKey := CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode); case iType of kCGEventFlagsChanged: ...; kCGEventLeftMouseUp: ...; kCGEventKeyDown: ...; end; {$ENDIF} end;В документации нашел, что kCGEventKeyDown и kCGEventKeyUp приходят только в том случае если приложение запущено от root-а или внесено в список "System Preferences->Security & Privacy->Privacy->Accessibility"
Может кто знает как мне программно получить доступ к этим событиям?
Изменено пользователем dnekrasov2 ответа на этот вопрос
Рекомендуемые сообщения