windows - 用于打开资源管理器的自定义 URI 协议(protocol)

标签 windows registry uri protocols

我们有一个专为 google chrome 设计的应用程序,我们需要在其中添加到网络文件共享的链接。不幸的是,出于安全目的,Chrome 拒绝使用 file://协议(protocol)。我们想设置一个自定义协议(protocol)来允许此功能。

我认为执行此操作的一个好方法是调用 explorer。以下是我们添加的注册表项:

[HKEY_CLASSES_ROOT\MyApp\DefaultIcon]
@="\"C:\\Windows\\explorer.exe\""

[HKEY_CLASSES_ROOT\MyApp\shell]

[HKEY_CLASSES_ROOT\MyApp\shell\open]

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

目前,我们收到一条错误消息,指出协议(protocol)无效。谁能协助纠正这个问题?

非常感谢大家。

最佳答案

@Wolfram Schmied,

我刚刚使用 CMD 为你写了一个解决方法:

REGEDIT4

[HKEY_CLASSES_ROOT\IntranetFileLauncher]
@="URL:IntranetFileLauncher Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\IntranetFileLauncher\DefaultIcon]
@="\"C:\\Windows\\explorer.exe\""

[HKEY_CLASSES_ROOT\IntranetFileLauncher\shell]

[HKEY_CLASSES_ROOT\IntranetFileLauncher\shell\open]

[HKEY_CLASSES_ROOT\IntranetFileLauncher\shell\open\command]
@="cmd /c set url=\"%1\" & call set url=%%url:intranetfilelauncher:=%% & call start explorer file:%%url%%"

上面的代码基本上和你的一样,除了最后一行它使用 cmd.exe 打开一个文件/文件夹的命令。 在伪代码中:打开 commandpromt,将给定的文件路径作为变量“url”传递,通过剥离协议(protocol)标识符更改变量“url”,最后使用剥离的文件路径打开资源管理器

希望对您有所帮助。

关于windows - 用于打开资源管理器的自定义 URI 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234988/

相关文章:

c# - 我如何在win7上通过c#修改注册表?

nginx - 仅将 URI 中的第一个路径元素与 CGI 可执行文件相匹配的正确 nginx 位置规则是什么?

c++ - std::stringstream 类需要有 dll 接口(interface)

c++ - MS Windows 中的应用程序路径位置

c# - 为 COM Interop 注册 x64 程序集的问题

javascript - 在 HTA 文件中使用 Javascript 从 Windows 注册表读取/写入

java - 通过编码从字符串创建 uri

Android 2.2 MediaPlayer 在一个 SHOUTcast URL 上工作正常,但在另一个 URL 上却不行

windows - imageMagick 的内存问题?

windows - docker wsarecv : An existing connection was forcibly closed by the remote host