【问题标题】:Opening a local or network path in Explorer from browser从浏览器在 Explorer 中打开本地或网络路径
【发布时间】:2022-10-25 01:35:02
【问题描述】:

我正在尝试从浏览器中打开 Explorer.exe 中的路径。我添加了一个自定义协议:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\filebrowser]
@="File browser"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\filebrowser\shell]

[HKEY_CLASSES_ROOT\filebrowser\shell\open]

[HKEY_CLASSES_ROOT\filebrowser\shell\open\command]
@="\"C:\\Windows\\explorer.exe\" %1"

我正在浏览器中使用以下链接进行测试,该链接应在资源管理器中打开 C:\Windows:

<a href = "filebrowser:///parameter1=C:\Windows">Windows folder</a>

但是,当我单击链接时,资源管理器不会打开 C:\Windows 文件夹,而是打开 Documents 文件夹。不知何故,Explorer.exe 似乎没有正确接收该参数。如果我输入文件浏览器:///parameter1=C:\Windows在运行命令窗口中,资源管理器打开 Windows 文件夹。

如何在资源管理器中打开正确的路径?

【问题讨论】:

    标签: windows registry protocols local url-scheme


    【解决方案1】:

    对于如下链接:&lt;a href = "filebrowser:///C:Windows"&gt;Windows folder&lt;/a&gt; 使用我之前示例中的注册表脚本,Explorer.exe 将被调用文件浏览器:///C%5CWindows作为参数而不是C:窗户.我使用以下注册表脚本解决了这个问题,我在其中替换了一些字符串:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOTilebrowser]
    @="File browser"
    "URL Protocol"=""
    
    [HKEY_CLASSES_ROOTilebrowsershell]
    
    [HKEY_CLASSES_ROOTilebrowsershellopen]
    
    [HKEY_CLASSES_ROOTilebrowsershellopencommand]
    @="cmd /k set myvar=%1  & call set myvar=%%myvar:filebrowser:///=%% & call set myvar=%%myvar::=:\%% & call Explorer.exe %%myvar%% & exit"
    

    如果不在 cmd 中运行批处理脚本或调用其他程序进行替换,似乎无法使用路径作为参数调用 Explorer.exe。

    对于像这样的网络路径Host145用户MikeDocuments我不能使用反斜杠,因为它们会被 URL 编码并且很难在脚本中替换。相反,我正在使用#像这样签名:&lt;a href = "filebrowser:///##Host145#Users#Mike#Documents"&gt;Test folder&lt;/a&gt; ,脚本将变为:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOTilebrowser]
    @="File browser"
    "URL Protocol"=""
    
    [HKEY_CLASSES_ROOTilebrowsershell]
    
    [HKEY_CLASSES_ROOTilebrowsershellopen]
    
    [HKEY_CLASSES_ROOTilebrowsershellopencommand]
    @="cmd /k set myvar=%1  & call set myvar=%%myvar:filebrowser:///=%% & call set myvar=%%myvar::=:\%% & call set myvar=%%myvar:#=\%% & call Explorer.exe %%myvar%% & exit"
    

    【讨论】:

      【解决方案2】:

      对我来说那是行不通的

      cmd /k set myvar=%1 & call set myvar=%%myvar:filebrowser:///=%% & call set myvar=%%myvar::=:%% & call Explorer.exe %%myvar%% &出口

      改成

      cmd /k set myvar=%1 & call set myvar=%%myvar:filebrowser:///=%% & call set myvar=%%myvar::=:%% & call start %%myvar%% & exit

      现在工作正常 在 Windows 11 和 10 上测试

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-06
        • 2021-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多