WindowsにURLスキームを設定する方法になります。
2024/02/04 追記
文中の Explorer /n /e /root,$v を、Invoke-Item $v に変更しました。
当初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);Invoke-Item $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);Invoke-Item $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デコード
Invoke-Item $v # エクスプローラーを開く
exit # 終了
Webブラウザで開く
以下のようなHTMLを作成してリンクをクリックしたら、指定したフォルダが開く
<a href="ndata:c:\windows\system32">c:\windows\system32</a>
これでブラウザからエクスプローラーを開く方法 その1(ActiveXを使った方法)が使用出来なくなっても、ほぼ同じ処理ができそうです。
コメント
コメント一覧 (11件)
IEがWindows11から終了することから、ブラウザで開いているフォルダに関して調べていたら、こちらのページに辿り着きました。
ローカルフォルダなら、問題なく開けるのですが、ネットワーク上の共有フォルダを開くにはどのようにすればよろしいでしょうか?
フォルダオープンは非常に便利に活用しておりますので、これが出来ましたら、非常に助かります。
どうぞ、よろしくお願い致します。
コメントありがとうございます。
NDATA:\\192.168.24.5
みたいに先頭に¥¥(全角で記入してますが実際は半角)を付加すれば開けますよ。
早急なご回答ありがとうございます。
\\でないといけないんですね。
//だったので開きませんでした。
これはファイルオープンを使っている方々にしたら、大きなニュースです!!
非常に助かりました。
あとひとつ、教えていただきたいのですが、開く際に必ず「Powershellを開きますか?」という確認が出てきますが、これを表示せずに開くことは可能でしょうか?
もしかしたら、最初にチェックマークを入れるところがあったような気もしますが・・・
もしお分かりでしたら、ご教授願います。
どうぞ、よろしくお願い致します。
手持ちPCのChrome,Firefox,Edgeで起動を試してみました。いずれもチェックボタンが表示されていました。
外部アプリ起動時の確認画面 といったキーワードで検索すると『レジストリを変更すると表示されるようになる』と情報が出てきますので、そちらをお試し下さい。
ご回答ありがとうございます。
レジストリの追加を試みましたが、なぜか使用しているPCにはPoliceの中にGoogleやEdgeがありませんでした。
自分でキーを追加して試みましたが、残念ながらチェックボックスを復活する事が出来ませんでした。
ここは諦めて、都度開くボタンを押したいと思います。
最後までご回答頂きましてありがとうございました。
社内の告知板として利用しているページがWin11より使えないと思っておりましたが、これでしばらくは活用ができそうです。
こころより感謝致します。
お役に立てたようで良かったです。
自分も業務で使用していますが、現在も「ブラウザからエクスプローラーを開く方法 その1」で運用中です。PowershellのWindowが一瞬出るのが気になってまだActiveXを使ったその1を使用しています…
解決できたらまた記事にしたいと思います。
当方もこちらの情報を元にグループウェアからのエクスプローラー使用で助けられていました。
しかし、2024/10/21にGoogle ChromeとMicrosoft Edgeの更新を行ったところ機能しなくなってしまいました。おそらくセキュリティに関する更新が有ったのではないかと思われます。
こちらの方法で大変助けられていたので、どうしたものかと悩んでおります。
Chrome 130.0.6723.59 では動作しましたよ
nagaoka様
お調べ頂きありがとうございました。
こちらもChrome 130.0.6723.59なのですが駄目でした。
Microsoft Edgeは 130.0.2849.46です。
Microsoft EdgeのIEモードでは動作しました。
社内の複数端末にて動作しなかったので社内環境に問題があるのかもしれません。
ご面倒お掛け致しました。
ただ、この様な機能をご紹介いただき大変感謝しております。
ありがとうございます。
その後、グループウェアのHTMLの一部記述を書き換え、
Invoke-Item $vに書き換えたNDATA.regを登録したところ動作するようになりました。
原因がどこにあったかよくわからないままなのですが、ひとまずは問題が解決できました。
大変お騒がせ致しました。
ご対応ありがとうございました。
解決したようで良かったです