みかん 🍊
- windows 10
- Widnows Exprorer で詳細表示したときのサイズが KB 表示がいや
- サイズに応じて GiB, MiB の単位にしてほしい
- サイズに応じて単位を使い分ける PropertyHandler を実装
- それ用の propdesc を用意
- 実装後に「PropertyHandler は各拡張子につき1つ」という仕様を知って泣いた
- 自作 PropertyHandler を登録すると、デフォルトのやつが無効になってしまう
- mp4 だと、「長さ」とかがみれなくなる
- 悲しい。
outputs
PropSchemaRegister.exe
... propdesc を登録するやつSmartSize.propdesc
... propdesc fileSmartSizePropertyHandler/SmartSize.propdesc
と同じ- PropSchemaRegister.exe で登録する
SmartSizePropertyHandler.dll
... dll- mp4 を対象にした状態でビルドしてある
- けど、そのままだと mp4 は機能しない
- レジストリエディタで SystemPropertyHandlers を編集する必要がある
PropDumper
- 勉強目的で MS のサンプルを再実装したやつ
PropSchemaRegister
- propdesc を登録するためのやつ
- PropDumper のサンプルの register 機能を抜粋しただけ
SmartSizePropertyHandler
- PropertyHandler の実装
- 基本的に MS のサンプルを眺めながら実装
- PropertyHandler
- ファイルからプロパティを取り出す
- PropertyHandler は、各拡張子につき1個しか登録できない。悲しい。
- propdesc
- プロパティの表示方法まわりを指定
- これを登録しないと詳細表示のタブとかで使えない
- registry
- SystemPropertyHandlers
- key:
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\SystemPropertyHandlers
- 編集するにはアクセス許可を変更する必要がある
- key:
- PropertyHandlers
- key:
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers
- key:
- SystemPropertyHandlers が優先される
- SystemPropertyHandlers
- Powershell を管理者権限で実行
- このディレクトリまで移動
- PropSchemaRegister.exe で propdesc を登録
> .\PropSchemaRegister.exe r .\SmartSize.propdesc
- 詳細表示のタブ表示に必要
- regsvr32 で dll を登録
> regsvr32 .\SmartSizePropertyHandler.dll
- 登録解除は
regsvr32 /u hoge.dll
- レジストリエディタを起動
- SystemPropertyHandlers を編集
- key:
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\SystemPropertyHandlers
- 対象の拡張子のハンドラを変更する
{E5E96240-C9EE-11EC-9D64-0242AC120002}
に変更- もとの PropertyHandler の機能は失われるので注意
- もとの uuid に戻せばおk
- key:
- dll ビルド時に指定した拡張子じゃなくても、手動登録すればおk
- 拡張子がSystemPropertyHandlers に…
- ある → SystemPropertyHandlers に登録されてるやつを編集
- ない → PropertyHandlers に追加
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers
- 拡張子がSystemPropertyHandlers に…
- SmartSize PropertyHandler
- key:
{E5E96240-C9EE-11EC-9D64-0242AC120002}
- key:
- Default SystemPropertyHandler
- mp4:
{f81b1b56-7613-4ee4-bc05-1fab5de5c07e}
- mkv:
{C591F150-4106-4141-B5C1-30B2101453BD}
- mp4: