【发布时间】:2018-01-17 13:39:48
【问题描述】:
我正在编写一个带有链接的 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->open->command与(Default)的"C:\Program Files\Notepad++\notepad++.exe" "%1"
【问题讨论】:
-
您是否尝试将您的 URI 命名为
NotepadPlusPlus而不是Notepad++?+可能是问题所在,因为它用于表示空格(就像%20)。 -
更改为
NOTEPADPLUSPLUS,结果相同... -
NOTEPADPLUSPLUS:"C:\\TestingDocument.txt"怎么样?您有实际编写的注册表项吗? -
查看使用注册表项进行编辑。同样添加您显示的引号也不起作用。
-
看,我不太清楚发生了什么。我相信
(Default)实际上应该是@。此答案与超级用户上的答案相同:superuser.com/questions/585758/…(它们使用.reg文件,因此您可以创建一个并通过双击将其导入)。另一种选择是将命令定义为"\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""(注意额外的引号和额外的反斜杠)。
标签: html url-scheme