パスによる判別実行
拡張子による判別とパスによる判別
拡張子判別
拡張子判別ソフトというものがある。あるファイルをそこに投げると、そのファイルの拡張子に対応して、事前に登録したメニューが出て、どのソフトでそのファイルを実行するかを決めることができる。例えば拡張子がJpgの場合は、
このようなメニューがでる。
これだと、その時々の用途にあわせて、その用途に特化したソフトで起動することが可能になるわけだ。
この手のソフトとして一番有名なのはポチエスで、fenrirでも同じことができたりする。非常にファイラと相性がいい。
パスによる判別
だが、これとは別に、特定のフォルダを特定のソフトで開きたいという場合がある。例えばMP3が入っているアルバムフォルダと、画像が入っているフォルダとではそれを投げるソフトは違ってくるわけです。音楽フォルダを画像閲覧ソフトに投げることも、画像フォルダを音楽プレイヤーに投げるということも絶対にない。しかし、このときは二つとも、拡張子という観点では区別することができないわけです。
このような場合、パスで区別することになる。パスにMUSICと入っているかだとか、D:\MUSICフォルダ以下にあるかどうかで判別して、特定のソフトに投げるということになるわけです。これができるソフトとして、やはりポチエス(名称による判別版)があります。fenrirでも同じことができます。
とにかく、拡張子とパス、この二つの判別によって、起動するソフトを変えたい場合があるわけです。
PPxでやりたい
ということで本題。このパスによる判別をPPxでできないかと考えた。
拡張子による判別は普通に対応しているが、パスによる判別もどうにかしてできないだろうか。例えば、音楽フォルダを右クリックしたら音楽フォルダ用メニューを出すというようにできないだろうか。
というわけでその方法です。スクリプトを用います。
- menu.js
//!*script if (PPx.GetFileInformation(PPx.Extract("%FCDN")) == ":DIR" && PPx.Extract("%1").match(/D:\\Music/)){ PPx.Execute("%M_Music") }else { PPx.Execute("%ME_mouseR") };
BackSpace編で作ったものをほぼそのまま流用。これは、D:\Music以下にいてかつフォルダのときは音楽再生用メニューM_Musicを。そうでないときは拡張子判別E_mouseRを実行するスクリプトです。
- D:\Musicかどうかを判別
- 違えば拡張子判別をする
という二段階ですね。条件分岐を適当に増やせば、もっと細かく分けることもできると思います。
これを、右クリックに登録。
MC_click = { ; PPc メイン窓 R_ENT ,*script %0\Script\menu.js }
拡張子別判別実行
一応拡張子別判別実行のメニューと、関連するメニューも載せておきます。以前書いた記事も参考にしてください。
E_mouseR = { ** comment ** :DIR ,%M_DirMenu .jpg;.png ,%M_Picture MP3 ,%M_Music * ,%M_menuCEdit } M_DirMenu = { ** comment ** コピー = %K"@C" 切り取り = %K"@^X" 名前の変更 = %K"@R" パスのコピー = %M_ClipPath DropBoxにバックアップ = *file DirMirror,,"C:\Documents and Settings\ユーザーネーム\My Documents\My Dropbox" -- = プロパティ = %z%FVD,properties } M_Music = { ** comment ** &Aimp2 = %Ob "C:\Program Files\AIMP2\AIMP2.exe" %#FCD Aimp2に追加 = %Ob "C:\Program Files\AIMP2\AIMP2.exe" /insert %#FCD パスのコピー = %M_ClipPath } M_menuCEdit = { ** comment ** 開く = %z,open PPvで閲覧 = %K"@N" エディタで編集 = %"Text edit"%Orib,editor %FDC -- = DropBoxにコピー = *file DirMirror,,"C:\Documents and Settings\ユーザーネーム\My Documents\My Dropbox" コピー = %K"@C" 切り取り = %K"@^X" パスのコピー = %M_ClipPath -- = ショートカットの作成 = %z,link 削除 = %K"@\D" 名前の変更 = %K"@R" -- = カーソル行の拡張子でファイルマスク = *maskentry *.%T プロパティ = %K"@&ENTER" } M_Picture = { ** comment ** PPv = %K"@N" DialogHandler = %Ob D:\bin\DialogHandler\DialogHandler.x86-32.exe %FCD Azpainter = %Ob D:\bin\azpt\AzPainter2.exe %FCD MassiGra = %Ob D:\bin\MassiGra\MassiGra.exe %FCD 縮小専用 = %Ob D:\bin\smahe\SmaHey.exe %FCD } M_Mask = { ** comment ** ディレクトリマスク = *maskentry attribute:d EXEでマスク = *maskentry *.exe テキストマスク = *maskentry *.txt,*.howm,*.ini 画像マスク = *maskentry *.jpg,*.jpeg,*.png,*.gif,*.bmp マスク解除 = *maskentry } M_ClipPath = { ** comment ** &CopyFileName = *cliptext %R Copy&DirName = *cliptext %1 Copy&FileName(拡張子無し) = *cliptext %Y CopyFilePath = *cliptext %FCD }