Core Graphics   >     Quartz Event Services
Quartz Event Services
イベントタップ を管理するための機能を提供します。これは、macOSで低レベルのユーザー入力イベントのストリームを監視および変更するためのフィルタです。
概観
イベントタップを使用すると、フォアグラウンドアプリケーションへの配信前に、システム内の複数のポイントから入力イベントを監視およびフィルタリングすることができます。イベントタップは、アプリケーションが他のプロセスに渡された入力イベントを監視することを可能にする Carbon イベント監視メカニズムの機能を補完し、拡張します(関数 GetEventMonitorTarget() を参照して下さい)。
イベントタップは、セクション 508イネーブルテクノロジとして機能するように設計されています。たとえば、話されたレビューでキーボードのフィルタリングを行うように設計された、言語障害のある人を支援するソフトウェアシステムを考えてみましょう。このようなシステムでは、イベントタップを使用してすべてのキーストロークを監視し、辞書のチェックと一致を実行し、入力ストリーム内の単語区切りを検出したときに、組み立てられた単語をユーザに復唱することができます。追加の入力キーストロークまたは他のジェスチャーによって示されるように、ユーザが受け入れ可能である場合、イベントはフォアグラウンドアプリケーションへの配信のためにシステムにポストされます。
OS X バージョン 10.4 で導入されたイベントタップは、コンテキスト外のイベントフックと SendInput を確立するために使用されるとき、Win32 関数の SetWinEventHook と同様の機能を提供します。クォーツ・イベント・サービスには、また CGRemoteOperation.h ファイルで宣言されている一連の古いイベント関連の関数も含まれています。これらの関数は引き続きサポートされていますが、新しい開発には推奨されません。
シンボル
イベントの操作
class var typeID: CFTypeID
不透明な型 CGEventRef の型 ID を返します。
新しい Quartz イベントを返します。
var data: CFData?
Quartz イベントの平坦化されたデータ表現を返します。
init?(withDataAllocator: CFAllocator?, data: CFData?)
イベントの平坦化されたデータ表現から作成された Quartz イベントを返します。
init?(mouseEventSource: CGEventSource?, mouseType: CGEventType, mouseCursorPosition: CGPoint, mouseButton: CGMouseButton)
新しい Quartz のマウスイベントを返します。
init?(keyboardEventSource: CGEventSource?, virtualKey: CGKeyCode, keyDown: Bool)
新しい Quartz キーボードイベントを返します。
func copy()
既存の Quartz イベントのコピーを返します。
既存の Quartz イベントから作成された Quartz イベントソースを返します。
func setSource(CGEventSource?)
Quartz イベントのイベントソースを設定します。
var type: CGEventType
Quartz イベントのイベント型を返します(たとえば、マウスの左ボタンを押す)。
var timestamp: CGEventTimestamp
Quartz イベントのタイムスタンプを返します。
var location: CGPoint
Quartz マウスイベントの位置を返します。
var unflippedLocation: CGPoint
Quartz マウスイベントの位置を返します。
var flags: CGEventFlags
Quartz イベントのイベントフラグを返します。
func keyboardGetUnicodeString(maxStringLength: Int, actualStringLength: UnsafeMutablePointer<Int>?, unicodeString: UnsafeMutablePointer<UniChar>?)
Quartz キーボードイベントに関連した Unicode 文字列を返します。
func keyboardSetUnicodeString(stringLength: Int, unicodeString: UnsafePointer<UniChar>?)
Quartz キーボードイベントに関連した Unicode 文字列を設定します。
func getIntegerValueField(CGEventField)
Quartz イベント内のフィールドの整数値を返します。
func setIntegerValueField(CGEventField, value: Int64)
Quartz イベント内のフィールドの整数値を設定します。
func getDoubleValueField(CGEventField)
Quartz イベント内のフィールドの浮動小数点値を返します。
func setDoubleValueField(CGEventField, value: Double)
Quartz イベント内のフィールドの浮動小数点値を設定します。
イベントタップの操作
class func tapCreate(tap: CGEventTapLocation, place: CGEventTapPlacement, options: CGEventTapOptions, eventsOfInterest: CGEventMask, callback: CGEventTapCallBack, userInfo: UnsafeMutableRawPointer?)
イベントタップを作成します。
class func tapCreateForPSN(processSerialNumber: UnsafeMutableRawPointer, place: CGEventTapPlacement, options: CGEventTapOptions, eventsOfInterest: CGEventMask, callback: CGEventTapCallBack, userInfo: UnsafeMutableRawPointer?)
指定したプロセスのイベントタップを作成します。
class func tapEnable(tap: CFMachPort, enable: Bool)
イベントタップを有効または無効にします。
class func tapIsEnabled(tap: CFMachPort)
イベントタップが有効かどうかを示すブール値を返します。
func tapPostEvent(CGEventTapProxy?)
Quartz イベントをイベントタップからイベントストリームにポストします。
func post(tap: CGEventTapLocation)
特定の位置でのイベントストリームに Quartz イベントをポストします。
func postToPSN(processSerialNumber: UnsafeMutableRawPointer?)
特定のアプリケーションのイベントストリームに Quartz イベントをポストします。
func CGGetEventTapList(UInt32, UnsafeMutablePointer<CGEventTapInformation>?, UnsafeMutablePointer<UInt32>?)
現在インストールされているイベントタップのリストを取得します。
イベントソースの操作
class var typeID: CFTypeID
不透明型 CGEventSourceRef の型 ID を返します。
init?(stateID: CGEventSourceStateID)
指定したソース状態で作成された Quartz イベントソースを返します。
var keyboardType: CGEventSourceKeyboardType
Quartz イベントソースと共に使用されるキーボードタイプを返します。
var sourceStateID: CGEventSourceStateID
Quartz イベントソースに関連したソース状態を返します。
class func buttonState(CGEventSourceStateID, button: CGMouseButton)
Quartz イベントソースの現在のボタン状態を示すブール値を返します。
class func keyState(CGEventSourceStateID, key: CGKeyCode)
Quartz イベントソースの現在のキーボード状態を示すブール値を返します。
class func flagsState(CGEventSourceStateID)
Quartz イベントソースの現在のフラグを返します。
class func secondsSinceLastEventType(CGEventSourceStateID, eventType: CGEventType)
Quartz イベントソースの最後のイベントからの経過時間を返します。
class func counterForEventType(CGEventSourceStateID, eventType: CGEventType)
ウィンドウサーバーが起動してから見られる、指定された型のイベントのカウントを返します。
var userData: Int64
Quartz イベントソースのユーザー指定の 64 ビットデータを返します。
func getLocalEventsFilterDuringSuppressionState(CGEventSuppressionState)
イベント抑制中にどのローカルハードウェアイベントのクラスを有効にするかを示すマスクを返します。
func setLocalEventsFilterDuringSuppressionState(CGEventFilterMask, state: CGEventSuppressionState)
イベント抑制中にどのローカルハードウェアイベントのクラスを有効にするかを示すマスクを設定します。
var localEventsSuppressionInterval: CFTimeInterval
Quartz イベントのポストに続いてローカルハードウェアイベントが抑制される間隔を返します。
var pixelsPerLine: Double
スクロールしているイベントソースの 1 行あたりのピクセルのスケールを取得します。
呼び出し関数
関連したイベントタップが Quartz イベントを受け取るたびに呼び出されるクライアント提供の呼び出し関数。
データ型
合成マウスイベントで設定されているボタンの数を表します。
キーボード上の 1 つ以上のキーを押して生成される文字を表します。
イベントタップ内で観測される Quartz イベントのセットを識別するマスクを定義します。
低レベルのハードウェアイベントを表す不透明な型を定義します。
指定されたイベントソースで使用されるキーボードのタイプを表すコードを定義します。
Quartz イベントのソースを表す不透明型を定義します。
イベントタップに関する情報を報告するために使用される構造体を定義します。
イベントタップに関連するクライアントアプリケーション内の状態を表す不透明な型を定義します。
起動後、Quartz イベントが発生するまでの経過時間をナノ秒単位で定義します。
キーボードイベントで使用される仮想キーコードを表します。
スクロールホイールイベントで設定されているホイールの数を表します。
定数
低レベルイベント内の特殊なフィールドにアクセスするためのキーとして使用される定数。
イベント抑制状態の間にフィルタリングできる低レベルのイベントのクラスにマスクを指定します。
イベントが作成されたときの修飾キーの状態、および他のイベント関連の状態を示す定数。
イベントソースの可能なソース状態を指定する定数です。
イベントをポストした後に発生する可能性があるイベント抑止状態を指定します。
低レベルイベント内の特殊なフィールドにアクセスするためのキーとして使用される定数。
新しいイベントタップがアクティブフィルタか受動的リスナーかを指定する定数です。
新しいイベントタップがアクティブなイベントタップのリストに挿入される所を指定する定数。
さまざまな型の入力イベントを指定する定数。
1 つ、2 つ、または 3 つボタンのマウスでボタンを指定する定数です。
kCGMouseEventSubtype イベントフィールドで使用される定数。
スクロールイベントの測定単位を指定する定数。