「Xamarin.Macでリムーバブルメディアの着脱を検知する」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | + | Xamarin.Macで[[CD-ROM]]や[[DVD-ROM]]、[[USBメモリ]]の挿入などを検出できると何かと嬉しい。 | |
− | ==実装例== | + | == 実装例 == |
− | NSWorkspace.SharedWorkspace. | + | NSWorkspace.SharedWorkspace.NotificationCenterを使うと検出できるようだ。この通知で情報として飛んでくるのは変化のあったデバイスのパスのみなので、そのパスをNSWorkspace.SharedWorkspace.GetFileSystemInfoを使い[[CD-ROM]]なのか[[USBメモリ]]なのかなどを判別する。なお、CD-ROMやDVD-ROMの場合はディスクフォーマットごとに返ってくる値が違うようだ。どんな種類があるのか全部はまだ把握していない。 |
通知には種類があるようで、この例では以下を実装している。 | 通知には種類があるようで、この例では以下を実装している。 | ||
− | + | * NSWorkspaceDidMountNotification - マウント直後 | |
− | *NSWorkspaceDidMountNotification - マウント直後 | + | * NSWorkspaceWillUnmountNotification - アンマウント直前 |
− | *NSWorkspaceWillUnmountNotification - アンマウント直前 | ||
− | |||
NSWorkspaceDidUnmountNotification(WillではなくDid)も実装すればアンマウント直前のみならずアンマウント直後も検出できる。ただしアンマウント後なのでデバイスパスしか取得できない。アンマウント失敗時を考慮するとこちらの方が確実かもしれないが詳しくは知らない。 | NSWorkspaceDidUnmountNotification(WillではなくDid)も実装すればアンマウント直前のみならずアンマウント直後も検出できる。ただしアンマウント後なのでデバイスパスしか取得できない。アンマウント失敗時を考慮するとこちらの方が確実かもしれないが詳しくは知らない。 | ||
131行目: | 129行目: | ||
</source> | </source> | ||
− | ==関連項目== | + | == 関連項目 == |
− | * [[Xamarin. | + | *[[Xamarin.Mac/CDやDVDなどの光学メディアを排出する]] |
− | |||
[[category:MonoMac]] | [[category:MonoMac]] | ||
[[category:Xamarin.Mac]] | [[category:Xamarin.Mac]] |