「Xamarin.Macでリムーバブルメディアの着脱を検知する」の版間の差分
imported>Administrator 細 Administrator がページ「Xamarin.Mac/リムーバブルメディアの着脱を検知する」を「Xamarin.Macでリムーバブルメディアの着脱を検知する」に移動しました |
imported>Administrator 編集の要約なし |
||
| 1行目: | 1行目: | ||
Xamarin. | [[Xamarin.Mac]]で[[CD-ROM]]や[[DVD-ROM]]、[[USBメモリ]]の挿入などを検出できると何かと嬉しい。 | ||
== 実装例 == | ==実装例== | ||
NSWorkspace.SharedWorkspace. | NSWorkspace.SharedWorkspace.NotificationCenterを使うと検出できるようだ。この通知で飛んでくるのは「変化のあったデバイスのパスのみ」なので、そのパスをNSWorkspace.SharedWorkspace.GetFileSystemInfoに投げて「[[CD-ROM]]なのか」「[[USBメモリ]]なのか」などを判別する。なお、GetFileSystemInfoの結果は[[CD-ROM]]や[[DVD-ROM]]の場合はディスクフォーマットごとに返ってくる値が違うようだ。どんな種類があるのか全部はまだ把握していない。 | ||
通知には種類があるようで、この例では以下を実装している。 | 通知には種類があるようで、この例では以下を実装している。 | ||
* NSWorkspaceDidMountNotification - マウント直後 | |||
* NSWorkspaceWillUnmountNotification - アンマウント直前 | *NSWorkspaceDidMountNotification - マウント直後 | ||
*NSWorkspaceWillUnmountNotification - アンマウント直前 | |||
NSWorkspaceDidUnmountNotification(WillではなくDid)も実装すればアンマウント直前のみならずアンマウント直後も検出できる。ただしアンマウント後なのでデバイスパスしか取得できない。アンマウント失敗時を考慮するとこちらの方が確実かもしれないが詳しくは知らない。 | NSWorkspaceDidUnmountNotification(WillではなくDid)も実装すればアンマウント直前のみならずアンマウント直後も検出できる。ただしアンマウント後なのでデバイスパスしか取得できない。アンマウント失敗時を考慮するとこちらの方が確実かもしれないが詳しくは知らない。 | ||
| 129行目: | 131行目: | ||
</source> | </source> | ||
== 関連項目 == | ==関連項目== | ||
*[[Xamarin.Mac/CDやDVDなどの光学メディアを排出する]] | *[[Xamarin.Mac/CDやDVDなどの光学メディアを排出する]] | ||
[[category:MonoMac]] | [[category:MonoMac]] | ||
[[category:Xamarin.Mac]] | [[category:Xamarin.Mac]] | ||