ブラウザからエクスプローラー(ファイル一覧)を開きたい場合のメモ
ActiveXでExplorer.exeを開くのが一番簡単?
下記のコードを index.html 等の名前で保存してサーバーへアップロード。
<!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><meta name="robots" content="noindex,nofollow"><title>エクスプローラを実行</title></head><body>
<script type="text/javascript" langage="JavaScript">
function RunApp(AppPath) {
new ActiveXObject("WScript.Shell").Run(AppPath);
window.open('about:blank','_self').close();
}
var getUrlVars = function(){
var vars = {};
var param = location.search.substring(1).split('&');
for(var i = 0; i < param.length; i++) {
var keySearch = param[i].search(/=/);
var key = '';
if(keySearch != -1) key = param[i].slice(0, keySearch);
var val = param[i].slice(param[i].indexOf('=', 0) + 1);
if(key != '') vars[key] = decodeURI(val);
}
return vars;
}
var nums = getUrlVars();
///////////////////////////////////////////////////////////////////////
var folder = "\\\\192.168.24.5\\data\\"; // ベースとなるディレクトリ
///////////////////////////////////////////////////////////////////////
// ?n=1&m=2&l=3&f=4 → folder¥1¥2¥3¥4
// ?n=1&m=2 → folder¥1¥2¥
// ?n=1 → folder¥1¥
// 非効率ですが...
if(nums["f"]) folder = folder + nums["n"] + "\\" + nums["m"] + "\\" + nums["l"] + "\\" + nums["f"];
else if(nums["l"]) folder = folder + nums["n"] + "\\" + nums["m"] + "\\" + nums["l"] + "\\";
else if(nums["m"]) folder = folder + nums["n"] + "\\" + nums["m"] + "\\";
else folder = folder + nums["n"] + "\\";
var exec = "explorer.exe /n /e /root,"+folder;
</script>
</head><BODY>
<script type="text/javascript" langage="JavaScript">
if(nums["n"].length) {
var html = '<form><input type="text" name="url" size="64" value="'+folder+'"readonly></form>';
document.write(html);
RunApp(exec);
}
</script>
<script type="text/javascript" langage="JavaScript">
var ua = window.navigator.userAgent.toLowerCase();
if(ua.indexOf('msie') != -1 || ua.indexOf('trident') != -1){
// セキュリティの設定ができていない
} else {
// IEでない
}
</script>
</body></html>
実行にはIEのセキュリティ設定が必要です。
あわせて読みたい

IEでActiveXを使う設定方法Internet ExplorerでActiveXを使う設定をメモ今回は外部サーバーに置いたhtmlからの実行を前提としています。通常の方法Windowsキーを押しながら『R』ボタンを押してフ...
Google Chromeから実行するにはIE Tabが便利です。
あわせて読みたい

Google ChromeでIE専用ページを表示する(IE Tab)最近はInternet Explorerでないと表示できないページはほとんど無いですが、ActiveXを使ったページではIEは大変重宝します。Cromeをデフォルトで使う人は多いと思います...
ActiveXのサポートは長くて2025年10月までなので、代替え方法を探していたら良さそうな方法が見つかったので、検証して次の記事に書きたいと思います。
[追記]記事を追加しました
あわせて読みたい

ブラウザからエクスプローラーを開く方法 その2WindowsにURLスキームを設定する方法になります。当初cmd.exeを使ってやろうとしてたんですが、URLデコード変換がうまくいかず...PowerShell.exeを使用してようやくうま...
コメント