【发布时间】:2014-12-16 17:17:43
【问题描述】:
我想在 html 中使用自定义协议处理程序来启动带有参数的程序。
我在 HKEY_CLASSES_ROOT 中创建了一个名为 EchoMe 的密钥,其中包含 URL Protocol = "" 和一个 EchoMe/shell/open/command 密钥(默认)= "c:\testapp\echome.exe" "%1" "% 2"。
echome.exe 可以有参数--echo-me text 将其返回(例如'C:\testapp\echome.exe --echo-me text' 打开程序并回显'test')
现在我不知道如何在 HTML 中体面地调用它。
到目前为止,我已尝试传递 2 个参数(例如 href="EchoMe:--echo-me Test"),但这似乎与看起来一样错误。
我还尝试只传递一个参数并更改调用本身(打开/命令键(默认)= "C:\testapp\echome --echo-me " "%1" 并将 html 更改为 href=" EchoMe:test" 但仍然没有出现在我的窗口中。
我很确定问题出在 HTML 中,但我找不到任何有用的信息
【问题讨论】:
-
您是否看过“将应用程序注册到 URI 协议”(msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx)?这似乎很有描述性。此外,为了获得最佳效果,请考虑以小写形式注册。混合大小写很难记住,并且随着时间的推移容易混淆。 (这是我的经验;您的可能会有所不同)。
-
我使用该 kb 创建初始注册表项。调用本身并不是真正的问题(单击链接运行程序),但将参数传递给它似乎根本不起作用。遗憾的是,kb 没有像样的 html href 调用将参数“--echo-me
”传递给我正在寻找的程序的示例。当然只使用小写字母是个好主意,我会在我的注册表中更改它 -
我创建了一个只回显 %1 的批处理文件,显然我的问题是:当我使用 href="EchoMe://
" 批处理收到 "EchoMe:// " 而不仅仅是我希望它接收的 。是否有可能只交出前面没有 EchoMe:// 东西的 ?