スポンサーサイト
新しい記事を書く事で広告が消せます。
【同じタグを付けた記事の一覧】
→
Media Player Classic - Black Edition(ポータブル)で設定が保存できない問題の対策
2016年09月27日(火)23時17分
Media Player Classic - Black Edition
少し前に Win7 から Win10 へ移行しました。
そしてその移行を機に、標準で使用するメディアプレーヤーも「Media Player Classic – Black Edition(以下「MPC-BE」)」に変更しました。
といっても、WinXP 時代は「Media Player Classic」、Win7 では「Media Player Classic - Home Cinema」を使っており、つまり長らく「Media Player Classic 系」を使用している点で大きな変わりはないのですが。
なお「標準で使用するメディアプレーヤー」とは、「MPC-BE が再生可能なすべてのメディア形式に関連付けし、ファイルのダブルクリックで起動して使える状態にしている」というような意味で書いています。
ポータブル化できるアプリケーションはなるべくポータブルに使うというポリシー
これら Media Player Classic 系(以下「MPC 系」)を気に入っている点の一つとして「設定を INI ファイルに記録することでポータブル運用を可能にする機能を標準で持っている」ということがあります。
この「ポータブルな運用」は、たとえ実際にそれを持ち運ぶことがないとしても、バックアップや OS 再インストール後の環境再構築等が楽になるというのが利点です。
そのため自分は「ポータブル運用可能なアプリケーションを優先的に選ぶ」「ポータブル化できるアプリケーションはなるべくポータブルに使う」といったポリシーを持っています。
「Program Files」フォルダにインストールして使うというポリシー
そしてもう一つ、「関連付けして使用するアプリケーションはなるべく「Program Files」フォルダにインストールして使う」というポリシー、というべきか「こだわり」のようなものもあるのです。
というのも「関連付けして使用するアプリケーション」は移動させるとファイルを開く際に問題がでます。
つまり、たとえポータブル運用可能なアプリケーションであっても移動させることはないわけです。
それで「どうせ移動させることがないなら標準的な作法に従おう」ということで、このようなポリシーになっています。
設定が保存されないという問題
上記の二つのポリシーが組み合わさった結果、わが環境における MPC 系は、インストーラ版で「Program Files」フォルダにインストールして固定的に使うにもかかわらず、ポータブル化もしてあるという状態です。
もちろん「いざとなればフォルダごと持ち出せばどこでもいつもの設定で使用できる」とか「設定のバックアップもフォルダを一つ丸ごとコピーするだけで済みレジストリどうこうを考えなくてもよい」といった「ポータブルの利点」は依然としてあるため、まったく意味がないわけではありません。
ただ困ったことに、MPC 系でこの使い方をした場合、なぜか設定を変更しても記憶されないという問題があるのです。
UAC と回避策
これは Vista 以降では UAC により、管理者であっても通常時はユーザー権限でアプリケーションが実行されるため、システム領域である「Program Files」フォルダへの書き込みができないために起こるようです。
ただし通常、UAC 機能の有効な Windows ではこの問題への回避策として、「Program Files」フォルダ以下に存在する INI ファイル等への書き込みは、ユーザーのプロファイルフォルダに置かれた VirtualStore 領域にリダイレクトされることで、ユーザー権限でも一見普通に読み書きできるように見える仕組みが用意されています。
ところが MPC 系ではなぜかその仕組みは働かないようです。
この問題に対する回避策としては、「Program Files」フォルダ以外に置いたり、あるいは管理者権限で起動するというような方法があります。
しかし「Program Files」フォルダ以外に置くのは前述のポリシーの問題で不可、また毎回管理者権限で起動するのも煩わしいためできれば避けたい手段です。
INI ファイルに書き込み属性を付加
とはいえ実際のところ、メディアプレーヤーの設定変更などそれほど頻繁におこなうものではないため、これまでは変更するときのみ管理者権限で起動して対応していました。
ところが今回ふと「INI ファイルのアクセス許可を変更し、書き込み属性を付加することで回避できるのではないか」と思いついたのです。
で、コマンドプロンプト(管理者)を開き
cacls.exe "C:\Program Files\MPC-BE x64\mpc-be64.ini" /c /g everyone:f
してみたところ、目論見通りユーザー権限で起動しても設定の変更が保存されるようになりました。
ちなみに、ファイル「default.mpcpl」が存在する場合は、これにも
cacls.exe "C:\Program Files\MPC-BE x64\default.mpcpl" /c /g everyone:f
として書き込み権限をつけると、「終了時のプレイリストを記憶」オプションがオンであるのに記憶されない問題も解消されるはずです(「default.mpcpl」がない場合は手動で作る)。
セキュリティ
ただ、UAC による書き込み制限は、もちろん安全のために搭載されたものであって、それを回避するような手段をとることはセキュリティ的なリスクはあります。
今回はどうせ自分一人しか使わない PC であるため「everyone」に対して「フルコントロール」を付与しましたが、セキュリティのことを考えれば、使用するユーザーのユーザー権限のみに個別に書き込み属性を追加するようにしたほうが、いくらか安全かもしれません。
- 関連記事
-
- 就寝時 BGM 用 Surface RT でスリープタイマーもどき
- Open Live Writer v0.6 へ移行しなかった話
- Media Player Classic - Black Edition(ポータブル)で設定が保存できない問題の対策
- Universal Extractor で Inno Setup インストーラを解体できないときには
- ImgBurn v2.5.8.0 をポータブルに使う
- Universal Extractor でインストーラを解体する
- Mery(テキストエディタ)色分け表示用正規表現の優先順位