使用URI Scheme在NotePad ++中启动程序

时间:2017-08-09 15:11:53

标签: html url-scheme

我正在编写一个带有链接的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

1 个答案:

答案 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 ++不理解你的参数。