Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- goroutine
- InfluxDB
- TLS
- Process
- Address translation
- docker container
- MQTT
- docker
- paging
- hmm
- segmentation
- free-space manage
- 2025년시작
- memory virtualization
- reverse proxy
- ADsP
- videostreaming
- 페이징
- CPU virtualization
- webserver
- RTMP
- was
- rtmpserver
- ADsP요약
- 은닉마르코프모델
- Docker Compose
Archives
- Today
- Total
Euclidean space
Mac OS 마우스 클릭 좌표 파악 | Quartz Event Services 본문
https://developer.apple.com/documentation/coregraphics/quartz_event_services
Quartz Event Services | Apple Developer Documentation
Provides features for managing event taps—filters for observing and altering the stream of low-level user input events in macOS.
developer.apple.com
Quartz Event Services
- MacOS의 event tap을 관리하는 기능 제공
- event tap은 low-level user input evets를 observing&altering 가능
#include <ApplicationServices/ApplicationServices.h>
CGEventTapIsEnabled | Apple Developer Documentation
Returns a Boolean value indicating whether an event tap is enabled.
developer.apple.com
CGEventMask eventMask = CGEventMaskBit(kCGEventLeftMouseDown);
LeftMouseDown: 마우스 왼쪽 버튼 누를 때
LeftMouseUp: 마우스 왼쪽 버튼 뗄 때
CFMachPortRef eventTap = CGEventTapCreate(
kCGHIDEventTap, // HID 레벨에서 이벤트를 감시
kCGHeadInsertEventTap, // 이벤트 탭의 우선순위 지정
kCGEventTapOptionListenOnly, // 이벤트를 수신만 함
eventMask, // 감지할 이벤트 유형 지정
myCGEventCallback, // 이벤트가 발생했을 때 호출되는 콜백 함수
nullptr // 사용자 정의 데이터 없음
);
CGEventTapCreate: event tap 생성
parameter:
- tap:
- 새로운 이벤트 탭의 위치를 지정합니다. CGEventTapLocation에 나열된 상수 중 하나를 전달해야 합니다. 루트 사용자로 실행되는 프로세스만이 HID(Human Interface Device) 이벤트가 윈도우 서버에 들어가는 지점에서 이벤트 탭을 설정할 수 있습니다. 다른 사용자의 경우 이 함수는 NULL을 반환합니다.
- place:
- 활성 이벤트 탭 목록에서 새 이벤트 탭의 배치를 지정합니다. CGEventTapPlacement에 나열된 상수 중 하나를 전달해야 합니다.
- options:
- 새 이벤트 탭이 수동 리스너인지 또는 활성 필터인지를 지정하는 상수를 전달합니다.
- eventsOfInterest:
- 관찰할 이벤트 집합을 지정하는 비트 마스크(bit mask)입니다. 가능한 이벤트 목록은 CGEventType에서 확인할 수 있습니다. 만약 이벤트 탭이 eventsOfInterest 매개변수에서 지정된 이벤트를 모니터링할 수 없는 경우, 해당 비트가 마스크에서 제거됩니다. 결과적으로 마스크가 비어있게 되면 이 함수는 NULL을 반환합니다.
- callback:
- 이벤트가 발생했을 때 호출되는 콜백 함수입니다. 이 함수는 이벤트 탭이 소스로 추가된 런 루프에서 호출됩니다. 콜백의 스레드 안전성은 런 루프 환경에 따라 정의됩니다. 콜백 함수에 대해 자세히 알아보려면 CGEventTapCallBack을 참조하세요.
- refcon:
- 사용자 정의 데이터를 가리키는 포인터입니다. 이 포인터는 callback 매개변수에서 지정된 콜백 함수에 전달됩니다.