-
Похожий контент
-
- 3 ответа
- 1 949 просмотров
-
- 12 ответов
- 3 587 просмотров
-
Креш при изменение в RunTime у формы BorderStyle/Transperency [OSX]
От Ilya.Z,
- fullscreen
- transperency
- (и ещё 3 )
- 0 ответов
- 3 089 просмотров
-
- 1 ответ
- 4 067 просмотров
-
- 7 ответов
- 4 995 просмотров
-
- 9 ответов
- 4 264 просмотра
-
- 1 ответ
- 4 814 просмотра
-
- 4 ответа
- 2 527 просмотров
-
- 3 ответа
- 2 286 просмотров
-
- 5 ответов
- 5 998 просмотров
-
-
Последние посетители 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 ответа на этот вопрос
Рекомендуемые сообщения