Cocoa

Macでキーロガー

More than 3 years have passed since last update.

addGlobalMonitorForEventsMatchingMask:handler:を使えばできる。

コールバックされるブロックの引数にNSEventのインスタンスがやってくるので、そこから情報を取得できる。

ただし、アクセシビリティが有効で、アプリケーションがアクセシビリティを利用できる信頼されたアプリケーションでないとイベントは飛んでこない。

信頼されたアプリケーションにするには

システム環境設定 > セキュリティとプライバシー > アクセシビリティ

で設定できる。

参考: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/MonitoringEvents/MonitoringEvents.html

Xcodeでデバッグしているアプリで、これを有効にする方法がわからない。
アーカイブビルドしたものをアプリケーションフォルダにおいておくと動いていることが確認できている。

ランチャー系の起動はどうやってキー入力をハンドルしているのか気にになる。