*[PPx]スクリプトメモ Alcohol 52% アンマウント(改)

今となってはあまり需要がなさそうなアプリだが
自分は仮想CD/DVD/BDドライブにAlcohol 52% Free Edition
を使用している。
一時DAEMON Tools Liteも試したことがあるのだが
結局はAlcohol 52%に戻ってしまった。

Windows10にも対応(SPTD v2x系使用)ということで
そのままインストールしたのだが困ったことが。
PPxから仮想ドライブへのマウント/アンマウントするのに
AxCmd.exeをコマンドラインから使用して行っていたのだが
仮想ドライブをオープンしているとアンマウントができない。
そのくせ邪魔な「正常に終了しました」ダイアログが
出てくるという。
Windows10だからかはたまた64Bit Windowsだからかは不明。

数日ほど悩んだが「ドライブをイジェクトすればいけるかも」
と思いつきググりWMPlayer.OCXを使用する方法を見つけた。
出てくるのはVBS(VBA)ばかりだけど(笑)

単にアンマウントするだけなのにずいぶんと面倒になってしまった。<追記>
->8703->8806とバージョンアップしたがWin10対応がまだ不完全の模様
<追記2>
上記バージョンアップに関連するのか不明だが、いつの間にか
マウントもアンマウントもできなくなってしまう事がある。
こうなると「正常に終了しました」ダイアログが出るばかりで
何をやってもダメ。
再起動するしか手がない。
WMPlayer.OCXによるejectをやめれば大丈夫みたいだが、
そうするとアンマウントができない(別のマウントができない)。
困った<追記3>
AxCmd.exeをやめてWMPlayer.OCXだけにすれば大丈夫っぽい?
しばらく様子見!<追記4>
やはりダメでマウントもアンマウントもできなくなってしまう事がある。
エクスプローラーで「取り出し」を行っても同様の現象が
発生することがあり、どうもSPTDの問題じゃ無いかと思われる。
残念だがアプリレベルではどうにもなりそうにない。<追記5>
他にアンマウントする方法があるかもしれないとvector内を
探して、いくかのツールを見つけた。
強制アンマウントが使えるツールもあり有望かもしれない
今のところはうまく動いている模様

//!*script
// Alcohol 52%アンマウントルーチン Ver 2.0
// 引数1:アンマウント対象ドライブ番号
// 使用エイリアス:Alcohol
// ============================================================
//^変数宣言
var WSHObj	= '';	// wshシェル
var WMPObj	= '';	// OCX
var Drives	= '';
var command	= '';
var RetCD	= '';

// オブジェクト生成
WSHObj = new ActiveXObject('WScript.Shell');
WMPObj = new ActiveXObject('WMPlayer.OCX');
Drives = WMPObj.cdromCollection;

// アンマウント処理(OCX)
Drives.Item(PPx.Arguments.Item(0)).Eject();

// アンマウント処理(Alcohol)
command = PPx.Extract('%\'Alcohol\'')
        + ' '
        + PPx.Arguments.Item(0)
        + ': /u"';
//RetCD   = WSHObj.run(command,0,true); //経過観察中

// 終了処理
WSHObj = '';
WMPObj = '';
Drives = '';
PPx.Quit();