C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで、[MediaFrameSourceGroup]でパソコンのカメラデバイスを取得した際に[プライバシーとセキュリティ]設定に表示される一覧からアプリを削除する場合の対処法です。
WinUI3でカメラデバイスの取得
例えば、WinUI3プロジェクトで次のコードを実行すると
var groups = await MediaFrameSourceGroup.FindAllAsync();
[アプリがカメラにアクセスすることを許可しますか?]画面が表示されます。
この画面の仕様は厄介で[はい]を選択しても[いいえ]を選択しても[設定|プライバシーとセキュリティ|カメラ]画面の[アプリにカメラへのアクセスを許可する]一覧に追加されます。
[はい]を選択した場合[オン]になり[いいえ]を選択した場合は[オフ]に設定されて一覧には追加されます。
で、設定画面から削除する方法がありません。
お試しでアプリを実行したら、必ず一覧にアプリ名が追加されるという仕様になっています。
なんで、こんな仕様になったのは分かりませんが、最近のWindows11は、削除する機能がオミットされる場合が多いのは否めません。
レジストリで削除が可能
過去のWindowsのように、[アプリにカメラへのアクセスを許可する]一覧のアプリ名はレジストリエディターで削除が可能です。
レジストリエディターを利用する場合は、誤ったキーや値を削除するとWindows自体が再起不能になるのでバックアップや、後でレジストリを復元する手段を確保してから作業してください。
作業を行う前に、アプリのGUID値を調べます。
[Package.appxmanifest]ファイルを開いて、[Identity]タグの[Name]の値を調べます。
GUID値を控えたら、次の手順でレジストリーを操作します。
1.[レジストリ エディター]を起動して、調べたGUID値を検索します。
複数のキーで検索されるので、次の場所になるまで検索を続けます。
HKEY_USERS\S...\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\
[S…]の部分はサインインをしているアカウントを示すIDなので環境によって異なります。
2. 削除するキーを選択してマウスの右ボタンでクリックして表示されたメニューから[エクスポート]を選択します。(レジストリのバックアップが不要な場合は、次の項目に進んでください)
3. 表示された[レジストリ ファイルのエクスポート]画面で名前を付けて保存します。
4. 選択したレジストリキーを削除します。
以上の作業で、[アプリにカメラへのアクセスを許可する]一覧に表示されたアプリ名が削除されます。
[レジストリ エディター]の作業は慎重に行ってください。
まとめ
今回は短い記事ですが、Visual StudioのWinUI3プロジェクトで、WinUI3プロジェクトで、[MediaFrameSourceGroup]でパソコンのカメラデバイスを取得した際に[プライバシーとセキュリティ]設定に表示される一覧からアプリを削除する場合の対処法を紹介しました。
[プライバシーとセキュリティ]の[アプリにカメラへのアクセスを許可する]一覧に表示されたアプリ名は特定のレジストリキーで削除が可能です。
WinUI 3アプリで追加した[アプリにカメラへのアクセスを許可する]一覧からアプリを削除したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。