SimpleMount.exe を実行すると下記のような画面が表示されます。
同様に、コマンドラインから、SimpleMount.exe を実行すると
同じように、使い方がコマンドライン上に表示されます。
実行環境によって、エラーや使い方の表示方法が変わりますが、使い方は同じです。
SimpleMount.exe XXX.iso
のように、iso ファイルのパスを唯一のコマンドライン引数として、SimpleMount.exe を実行します。プログラムの返り値は、成功時には 0 〜 25 になります。0 〜 25 の値は、割り当てられたドライブレターの番号です。0 は A:、1 は B:、・・・、25 は Z: を表します。
SimpleMount.exe /u XXX.iso
のように、iso ファイルのパスとオプション /u を指定して、SimpleMount.exe を実行します。指定した iso ファイルが割り当てられている全てのドライブ (ボリューム) の割り当てが解除されます。/u のかわりに、
SimpleMount.exe /u1 XXX.iso
とした場合、指定した iso ファイルのマウントされているいずれかのドライブ (ボリューム) のマウントが解除されます。おそらく最後の割り当て先ドライブが対象になると思われますが、ハッキリしたことは、わかりません。
SimpleMount.exe
のように、コマンドライン引数無しで実行するか、
SimpleMount.exe /?
/? オプションを指定します。
SimpleMount.exe /v
のように、/v オプションを指定します。
iso ファイルをドライブに割り当て、ドライブレターを表示した後、割り当ての解除を行うサンプルコードです。
var SM; SM = "SimpleMount.exe"; var MEDIA; MEDIA = "XXXX.iso"; var shell = new ActiveXObject('WScript.Shell'); var ret; ret = shell.Run(SM + " " + MEDIA, 1, true); // 割り当て if (ret >= 0 && ret <= 25) { var drive; drive = String.fromCharCode(0x41 + ret); WScript.Echo(drive); shell.Run(SM + " /u " + MEDIA, 1, true); // 解除 }
"SimpleMount.exe" の部分は、実際の絶対パスに変更します。例えば、"C:\\Program Files\\Freeware\\SimpleMount\\SimpleMount.exe" のようにします。
"XXXX.iso" の部分は、ドライブを割り当てたい iso ファイルの絶対パスに変更します。
var drive; drive = String.fromCharCode(0x41 + ret); WScript.Echo(drive);
の部分でドライブレターを表示してます。
ココをより実用的な処理に変更してご利用ください。
実用的な処理が非同期的な場合、すぐに割り当てが解除されてしまい、処理に失敗するので、実行後に解除する場合は、同期的に実行する必要があります。
例えば、Wscript.Echo は、画面を閉じるまで、処理が進みません (次の行が実行されません)。このような場合を同期的な実行と呼びます。一方、画面を閉じるよりも前に、次の行へ実行が進む場合があります、これを非同期的な実行といいます。この場合、すぐにドライブへの割り当てが解除されてしまうので、場合によっては処理が失敗します。
shell.Run(SM + " /u " + MEDIA, 1, true); // 解除
の行でドライブの割り当てを解除してます。この行を削除すれば、ドライブレターの表示画面を閉じた後もドライブの割り当てが行われたままになります。
このサンプルでは、ドライブの割り当て、利用、解除の流れになっていますが、最初に割り当てを解除し、割り当て、利用で終わるのもいいかもしれません。
/u は割り当て先ドライブがなく、解除に失敗してもエラーにはなりません。
ご意見・ご要望などは
フォームメール
から送信してください。
更新情報は、
ブログ
でも配信してます。