我正在编写一个带有链接的html文档,当用户点击它们时,应该打开带有参数的程序。
作为测试此过程的示例,我尝试创建一个URI方案,该方案应该使用我编写的简单文本文件的参数启动notepad ++。exe
直接从PowerShell运行如下所示,并成功打开我的文本文件
PS C:\> & 'C:\Program Files\Notepad++\notepad++.exe' 'C:\TestingDocument.txt'
我按照https://msdn.microsoft.com/library/aa767914(v=vs.85).aspx上的说明操作 用于创建URI(我称之为“NOTEPAD ++”)。并写了一个像下面这样的html文件来测试它:
<html> <body> <a href="NOTEPAD++:C:\\TestingDocument.txt" >Test</p> </body> </html>
但是,当我点击网络浏览器中的“测试”链接时,notepad ++会启动,但也不会打开我的文本文件......
我猜也许我NOTEPAD++:C:\\TestingDocument.txt
的语法不适合传递参数?对此的任何帮助将不胜感激。
修改
添加了注册表项Computer\HKEY_CLASSES_ROOT\NOTEPADPLUSPLUS
:
(Default)
URL:NOTEPADPLUSPLUS Protocol
URL Protocol
空字符串DefaultIcon
(Default)
"C:\Program Files\Notepad++\notepad++.exe"
shell
- &gt; open
- &gt; command
(Default)
"C:\Program Files\Notepad++\notepad++.exe" "%1"
hasItem
答案 0 :(得分:0)
您的Notepad ++句柄不起作用,因为完整的URI作为参数传递,而不仅仅是NOTEPAD++:
url方案之后的剩余部分。请参阅Registering an Application to a URI Scheme中有关该文档的文档:
如果注册表中指定的指定open命令包含%1参数,则Internet Explorer 将URI 传递给已注册的可插入协议处理程序应用程序。
你基本上是在打电话......
C:\Program Files\Notepad++\notepad++.exe "NOTEPAD++:C:\\TestingDocument.txt"
...而Notepad ++不理解你的参数。