2014-03-07 64 views
0

我希望在我的网站上有一个链接或按钮,在本地计算机上的特定文件(例如,myfile.txt)上启动
vim(编辑器)。
我想从任何浏览器的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

+0

所以你有什么尝试? – Orlo

回答

1

我已经测试的IE浏览器,浏览器,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并执行它(双击它),或输入值使用注册表编辑器手动:

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批处理文件。这是因为必须修改文件参数。使用%1作为参数将传递完整的URL,包括test:自定义协议名称到shell。在脚本中,我使用一个简单的子串模式来提取指定的文件名并调用编辑器:

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

就这样!

+0

我试过你的解决方案,它几乎可行! 当我从Chrome,Opera,FireFox和IE试用它时,我得到了相同的结果: 记事本打开,但打开了错误的文件。例如,当我使用安装在C:\ Opera \ 中的Opera(在Windows 7上)时,发生以下情况:当我将鼠标悬停在链接上时,显示:“test:c:\ temp \ file.txt” 但是,当我点击链接时,记事本显示文件的路径为:“C:\ Opera \ test:c:\ temp \ file.txt” 不知道为什么它包含Opera可执行文件的路径。我尝试修改蝙蝠脚本以包含notepad.exe的完整路径,但这并不起作用。 – user3145909

+0

有趣的是,你正在使用什么版本的Windows?如果我找到一些时间,我会深入研究一下。但无论如何,你可以从浏览器的链接调用批处理脚本 - 我期待更多的热情! ;-) –

+0

我正在使用Windows 7 Professional。是的,我很兴奋,它几乎可以工作。你太亲密了,我可以品尝它! WOOOO HOOOO!那足够的热情! :-) – user3145909

相关问题