我有一个这样的自定义uri:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Demo]
@="URL:Demo Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Demo\DefaultIcon]
@="\"D:\\demo.bat\""
[HKEY_CLASSES_ROOT\Demo\shell]
[HKEY_CLASSES_ROOT\Demo\shell\open]
[HKEY_CLASSES_ROOT\Demo\shell\open\command]
@="\"D:\\demo.bat\" \"%1\" \"%2\" \"%3\" \"%4\""
为了从命令提示符处运行此命令,我使用以下命令:
D:\demo.bat -ping -ip 172.18.102.65
但是对于从浏览器运行相同的文件,如果我使用自定义URI作为
Demo:
,则要求我传递参数。如果从浏览器运行参数,我不知道如何将参数传递给自定义URI。从浏览器运行此自定义uri时如何传递参数?请指教。
最佳答案
使用自定义URL时,整个URL将作为单个参数传递到已注册的应用程序/脚本。您的应用程序/脚本需要解析URL以提取所需内容。例如:
[HKEY_CLASSES_ROOT\Demo\shell\open\command]
@="\"D:\\demo.bat\" \"%1\""
您可以使用任何方式格式化URL,只要它是有效URL并以
demo:
开头即可,例如:D:\demo.bat "demo:ping?ip=172.18.102.65"
D:\demo.bat "demo:ping=172.18.102.65"
D:\demo.bat "demo:ping%20172.18.102.65"
更新:但是,请注意,这仅适用于Internet Explorer(和Windows Explorer,以及Windows Shell)。您需要其他浏览器的另一种解决方案。例如,Firefox有其自己的协议(protocol)处理程序机制:
Web-based protocol handlers
Adding a New Protocol to Mozilla
Writing a Firefox Protocol Handler