ブラウザからエクスプローラーを開く方法 その2

WindowsにURLスキームを設定する方法になります。

当初cmd.exeを使ってやろうとしてたんですが、URLデコード変換がうまくいかず…
PowerShell.exeを使用してようやくうまくできるようになりました。

今回は NDATA: スキームを設定します。(DATAだけだとブラウザでうまく開けなかったのでNをつけました)

URLスキーム使用方法

NDATA:<フォルダ名>
NDATA:c:\windows\System32

設定方法

以下のテキストを NDATA.reg と名前を付けて保存、ファイルをダブルクリックしてレジストリをインポートしてください。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\NDATA]
@="url:NDATA protocol"
"URL Protocol"=""

[HKEY_CURRENT_USER\SOFTWARE\Classes\NDATA\shell\open\command]
@="PowerShell -windowstyle hidden -Command \"$v=\\\"%1\\\".Replace('ndata:','');Add-Type -AssemblyName System.Web;$v=[System.Web.HttpUtility]::UrlDecode($v);Explorer /n /e /root,$v;exit\""

Windows7の場合PowerShellのPathが必要でした。 最終行を以下の様に修正してください。

@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -windowstyle hidden -Command \"$v=\\\"%1\\\".Replace('sptdata:','');Add-Type -AssemblyName System.Web;$v=[System.Web.HttpUtility]::UrlDecode($v);Explorer /n /e /root,$v;exit\""

またWindows7に標準で入っているPowerShellはバージョンが古くて、うまく動作しませんでした。
Windows Management Framework 5.1』をダウンロードしてインストールすれば期待通りに動作しました。

Windows7 64bit版: Win7AndW2K8R2-KB3191566-x64.zip

Windows7 32bit版: Win7-KB3191566-x86.zip

コマンド内容

# -windowstyle hidden ウインドウを隠す
# -Command コマンド入力
$v="%1".Replace('ndata:','')               # ndata: を削除
Add-Type -AssemblyName System.Web
$v=[System.Web.HttpUtility]::UrlDecode($v) # パラメーターをURLデコード
Explorer /n /e /root,$v                    # エクスプローラーを開く
exit                                       # 終了

Webブラウザで開く

以下のようなHTMLを作成してリンクをクリックしたら、指定したフォルダが開く

<a href="ndata:c:\windows\system32">c:\windows\system32</a>

これでブラウザからエクスプローラーを開く方法 その1(ActiveXを使った方法)が使用出来なくなっても、ほぼ同じ処理ができそうです。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!

コメント

コメントする

目次
閉じる