レジストリでは、データは
HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings
セクションに保存されます。 ビデオファイルの場合、
File Name N
/
File Position N
キーペアが使用されます(c
N
は0〜19)。 DVDの場合、1つの
DVD Position N
キーが使用されます(同じ範囲。プレーヤーは、DVD IDと最後に視聴した場所の両方を1つの不思議なデジタル記録に保存します)。
レジストリを操作するときにカスタムブックマークを作成するには、最も単純で柔軟性の低いものから、より複雑で微妙なものまで、3つの方法があります。 もちろん、この投稿はロケット科学であると主張していません。 シンプルで便利な実用的なトリックを説明します。
I.プレーヤー自体を使用した設定のエクスポート/インポート
![](https://habrastorage.org/storage2/75c/617/0b4/75c6170b49129a770668fe48e97bc144.png)
ムービーでプレーヤーを閉じた後、MPCを再度開始してからエクスポートを開始する必要があります。これは、レジストリ内の最新ファイルのデータを閉じる前にのみ更新されるためです。 .regファイルはすべての設定(必要なセクションだけでなく)で作成されます。これはもう1つの不便です。設定をインポートすると、目的のブックマークだけでなく、以前の設定全体も復元されます。
状況を少し改善してみましょう(さらにソリューションはWindows XPでのみテストされました)。
II。 バッチファイルを使用したエクスポート/インポート
レジストリを操作するための標準ツールでは個々のレジストリエントリをエクスポートできないため、ここでもセクション全体を処理する必要がありますが、ボリュームを目的の
HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings
絞り込むことができます。 また、プレーヤーを再度開く必要がなく、ブックマークの名前を手動で入力する必要がないという利点もあります。すべてが自動的に行われます。
1.バッチファイル
簡単な場所はありません(拡張子が.batのテキストファイルとして保存):
@echo off reg export "hkcu\Software\Gabest\Media Player Classic\Settings" "%~dpn1.reg"
引数には、DVDの最後のビデオファイルまたはフォルダーを指定できます。 同じディレクトリに同じ名前の.regファイルが作成されます。これは、ムービーに戻る前にワンクリックで簡単にインポートできます。
2.システムインターフェイスへの統合
毎回コマンドラインにアクセスしたり、ビデオをバッチファイルのショートカットにドラッグしたりする必要がないように、より便利な接続を実装します。
a。 Explorerの実装
バッチファイルの呼び出しをファイルとフォルダーのコンテキストメニューに追加します。 これを行うには、次のテキストファイルを作成し、.reg拡張子を付けてUnicodeで保存し、統合のために実行します(プログラムパスを自分のものに置き換えるだけで、スラッシュを2倍にしてください)。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\* MPC bookmark] [HKEY_CLASSES_ROOT\*\shell\* MPC bookmark\command] @="E:\\DOC\\prg\\bat\\mpc_bm.bat \"%1\"" [HKEY_CLASSES_ROOT\Folder\shell\* MPC bookmark] [HKEY_CLASSES_ROOT\Folder\shell\* MPC bookmark\command] @="E:\\DOC\\prg\\bat\\mpc_bm.bat \"%1\""
b。 Total Commanderの実装
このファイルマネージャーに慣れている人は、ツールバーにボタンを作成できます(コンテキストメニューを使用して、以前のレシピでボタンを複製できます)。
![](https://habrastorage.org/storage2/105/c96/12d/105c9612d7d3f5efd4603c75151b12e4.png)
次に、ビデオを見た後にアクティブなタブのフォーカスにあるファイルのブックマークを作成できます。
II。 Perlスクリプトを使用したエクスポート/インポート
ここでは、さらに大きな利便性を実現できます。 誰かがPerlに慣れていない場合、これは怖いことではありません。Windowsでインタープリター実装をダウンロードしてインストールするだけで、他のすべても簡単になります。
スクリプトを使用して、必要なキーのみを保存できます。 ビデオを視聴した直後にブックマークを付けた場合、履歴の最初のエントリのみが必要になります。それらは表示時間の最新のものです。
File Name 0
+
File Position 0
または
DVD Position 0
です。 さらに、誤ったブックマークを誤って残さないように、スクリプトは引数ファイルの識別情報とプレーヤーの履歴の最後のファイルを確認します。
1.スクリプト
次のテキストファイルを作成し、拡張子.plを付けて保存します。
################################################################################ use strict; use warnings; use Win32::TieRegistry; ################################################################################ $Registry->Delimiter("/"); my $movie = shift(); ################################################################################ if ($movie && -d $movie) { open(OUTPUT, '>:raw:encoding(UTF16-LE)', $movie . ".DVD.reg") or die "Cannot create the .reg file: $!\n"; print OUTPUT "\x{FEFF}Windows Registry Editor Version 5.00\r\n\r\n[HKEY_CURRENT_USER\\Software\\Gabest\\Media Player Classic\\Settings]\r\n", '"DVD Position 0"="', $Registry->{'HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings//DVD Position 0'}, "\"\r\n\r\n"; close(OUTPUT) or die "Cannot close the .reg file: $!\n"; } elsif ($movie && -f $movie) { my $last_file = $Registry->{'HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings//File Name 0'}; if (lc($movie) eq lc($last_file)) { open(OUTPUT, '>:raw:encoding(UTF16-LE)', $last_file =~ s/\.\w+$/.reg/r) or die "Cannot create the .reg file: $!\n"; print OUTPUT "\x{FEFF}Windows Registry Editor Version 5.00\r\n\r\n[HKEY_CURRENT_USER\\Software\\Gabest\\Media Player Classic\\Settings]\r\n", '"File Name 0"="', $last_file =~ s/\\/\\\\/gr, "\"\r\n", '"File Position 0"="', $Registry->{'HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings//File Position 0'}, "\"\r\n\r\n"; close(OUTPUT) or die "Cannot close the .reg file: $!\n"; } else { print "The input file does not match the last played one:\n\n$movie\n\n$last_file\n\n"; system('pause'); } } else { my $last_file = $Registry->{'HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings//File Name 0'}; open(OUTPUT, '>:raw:encoding(UTF16-LE)', $last_file =~ s/^.+\\//r =~ s/\.\w+$/+Last_DVD.reg/r) or die "Cannot create the .reg file: $!\n"; print OUTPUT "\x{FEFF}Windows Registry Editor Version 5.00\r\n\r\n[HKEY_CURRENT_USER\\Software\\Gabest\\Media Player Classic\\Settings]\r\n", '"File Name 0"="', $last_file =~ s/\\/\\\\/gr, "\"\r\n", '"File Position 0"="', $Registry->{'HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings//File Position 0'}, "\"\r\n", '"DVD Position 0"="', $Registry->{'HKEY_CURRENT_USER/Software/Gabest/Media Player Classic/Settings//DVD Position 0'}, "\"\r\n\r\n"; close(OUTPUT) or die "Cannot close the .reg file: $!\n"; } ################################################################################
フォルダーがスクリプトに転送される場合、フォルダーの名前を付けて.regファイルの最後のDVDにブックマークを保存するだけです(これがDVDかどうかを確認することはできません。誰かがこれを行う方法を知っている場合は、コメントを書き込んでください。ただし、映画を視聴してプレーヤーを閉じた直後にブックマークを付けた場合、その正確性について心配する必要はありません)。 ファイルが転送されると、スクリプトはこのファイルと履歴の最後のファイルのIDを確認します。 ファイルが一致する場合、スクリプトは2つの必要なキーを使用して同じ名前の.regファイルを作成し、一致しない場合はエラーメッセージを表示します。 引数がスクリプトにまったく渡されない場合、現在のアクティブフォルダー内の最後のDVDと最後のビデオファイルに関する情報を含む要約.regファイルが作成されます。
2.システムインターフェイスへの統合
最小限の変更ですべてがほぼ同じになります(プログラムへのパスを書き留めることを忘れないでください)。
a。 Explorerの実装
何らかの理由で、1つのスクリプトを指定するだけでは不十分なため、(。pl拡張子がPATHEXT変数に追加されていても)インタープリターを指定する必要があります。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\* MPC bookmark] [HKEY_CLASSES_ROOT\*\shell\* MPC bookmark\command] @="C:\\Perl\\bin\\perl.exe E:\\DOC\\prg\\perl\\var\\mpc_bm.pl \"%1\"" [HKEY_CLASSES_ROOT\Folder\shell\* MPC bookmark] [HKEY_CLASSES_ROOT\Folder\shell\* MPC bookmark\command] @="C:\\Perl\\bin\\perl.exe E:\\DOC\\prg\\perl\\var\\mpc_bm.pl \"%1\""
b。 Total Commanderの実装
同様のボタン:
![](https://habrastorage.org/storage2/0f5/3a5/8fe/0f53a58fef657f0c96445836332854a8.png)
説明されているメカニズムにより、この状態を実現できます。
![](https://habrastorage.org/storage2/5ad/b92/de5/5adb92de5115d5e556fac8a847cec9bb.png)
PSもちろん、プレーヤー自体にも「お気に入り」がありますが、一部の人にとっては不便に思えるかもしれません。ブックマークを更新する、つまり同じ映画のトランジション時間を変更するには、古いブックマークを削除して新しいブックマークを作成する必要があります。 ブックマークが映画の隣のフォルダーにある場合、それらは検索後、映画を見ると不要なものとして簡単に削除できます。 このようなブックマークは、すべてのアカウントから利用できます。 ファイル名またはファイルへのパスが変更された場合、(メモ帳でも)編集しやすくなります。