「Xamarin.MacでGlobal Event Monitorを使いキー入力を監視する」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
10行目: | 10行目: | ||
NSEventにNSEvent.AddGlobalMonitorForEventsMatchingMaskを叩いて監視対象のイベントの種類と発生時に呼ばれるイベントハンドラを設定するだけである。 | NSEventにNSEvent.AddGlobalMonitorForEventsMatchingMaskを叩いて監視対象のイベントの種類と発生時に呼ばれるイベントハンドラを設定するだけである。 | ||
非常に簡単。 | 非常に簡単。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang="csharp"> | <source lang="csharp"> | ||
public override void DidFinishLaunching(NSNotification notification) | public override void DidFinishLaunching(NSNotification notification) | ||
38行目: | 33行目: | ||
===アプリを許可する=== | ===アプリを許可する=== | ||
− | Global Event Monitorは[[OS]] | + | Global Event Monitorは[[OS]]のあらゆるイベントを監視できるので[[スパイウェア]]や[[キーロガー]]などの非常に危ういアプリも簡単に作り放題となる。 |
− | そのため[[Mac OS X]]では[[システム環境設定]] | + | そのため[[Mac OS X]]では[[システム環境設定]]から明示的にアプリを許可しないとGlobal Event Monitorは機能しないようになっている。 |
#左上のリンゴマークをクリック | #左上のリンゴマークをクリック | ||
#システム環境設定を開く | #システム環境設定を開く | ||
48行目: | 43行目: | ||
#中央のプラスマークをクリックして許可するアプリを追加する | #中央のプラスマークをクリックして許可するアプリを追加する | ||
− | + | なお、アクセシビリティの許可がされていない状態でGlobal Event Monitorを使用しているアプリを実行してもエラーも何も発生しない。 | |
− | この挙動は確実に半年くらいしてどんな実装だったかを忘れたころにトラブルになり、[[エラー]] | + | この挙動は確実に半年くらいしてどんな実装だったかを忘れたころにトラブルになり、[[エラー]]も出ないの[[でデバッグ]]も捗らず原因不明の[[バグ]]に悩まされ[[デスマーチ]]突入は決定的である。 |
− | + | そのためアプリ起動時にアクセシビリティの許可がされているかを確認し警告を出す方法を模索しているが、まだ解決方法は見つかっていない。 | |
− | |||
− | |||
==関連項目== | ==関連項目== | ||
− | |||
*[[Xamarin.Mac/システム環境設定を開く]] | *[[Xamarin.Mac/システム環境設定を開く]] | ||
*[[MonoMac/フルスクリーン表示に対応する]] | *[[MonoMac/フルスクリーン表示に対応する]] |