从浏览器启动应用程序

时间:2014-03-07 08:48:17

标签: java javascript html vim

我想在我的网站上有一个链接或按钮启动
vim(编辑器)在我本地机器上的特定文件(例如,myfile.txt)上 我想在任何浏览器的C:\ Users \ paulco \ myfile.txt上启动C:\ Vim \ Vim74 \ gvim.exe。

我希望这适用于所有(最现实的)浏览器 我主动使用Chrome,Opera,FireFox和IE(按照优先顺序) 为了使其适用于所有这些浏览器,
我认为脚本必须基于Java。

有谁知道怎么做?
有没有人有一个基于Java的脚本来执行此操作?

以下是我在该主题中找到的一些资源 但要么是IE特定的,要么不起作用 Launch application from a browser
http://msdn.microsoft.com/en-us/library/aa767914%28VS.85%29.aspx

1 个答案:

答案 0 :(得分:1)

我在Internet Explorer,Chrome,Opera和Firefox上测试了以下内容。

浏览器必须在Windows操作系统上运行,Linux和Mac需要不同的方法。

解决方案是为自定义协议定义protocol handler

1)拿这个HTML示例,它应该使用notepad.exe打开指定的文本文件:

<a href="test:c:\temp\file.txt">Open Textfile</a>

2)您需要在Windows注册表中定义协议处理程序,将以下内容保存到名为testing.reg的文件中并执行它(双击它),或使用regedit手动输入值:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\test]
@="URL:Editor test"
"URL Protocol"=hex(2):00,00

[HKEY_CLASSES_ROOT\test\DefaultIcon]
@="\"C:\\Windows\\system32\\notepad.exe\""

[HKEY_CLASSES_ROOT\test\shell]

[HKEY_CLASSES_ROOT\test\shell\open]

[HKEY_CLASSES_ROOT\test\shell\open\command]
@="\"C:\\temp\\editor.bat\" %1"

3)如您所见,我不是直接调用notepad.exe,而是调用c:\temp\editor.bat批处理文件。这是因为必须修改file-parameter。使用%1作为参数会将包含test:自定义协议名称的完整URL传递给shell。在脚本中,我使用一个简单的子字符串模式来提取指定的文件名并调用编辑器:

REM editor.bat
set param=%1
notepad %param:~5%

这就是全部!