如何使用html5按钮打开本地应用程序或文件



我想从html按钮打开像skype这样的本地应用程序,我读了很多关于这方面的文章,但它们不起作用,因为浏览器不允许我这样做,浏览器的最新版本不允许这样做,我知道你会告诉我做一些其他事情,而不是这样做,以便打开本地应用程序。但我不能,我必须这样做,这是一个来自大学的项目,下面是我的代码:

//I have done this but it doesnt work
<a href="file:///C:/Program%20Files%20(x86)/Skype/Phone/skype.exe"><button>Open App</button></a>
//I have done this but it doesnt work
<a style="Content-Type: application/octet-stream" href="file:///C:/Windows/notepad.exe" 
type="application/octet-stream">Open App</a>
//I have done this but it doesnt work
<button onclick="RunFile();">Open App</button>
<script type="text/javascript" language="javascript">
    function RunFile() {
    WshShell = new ActiveXObject("WScript.Shell");
    WshShell.Run("C:/windows/notepad.exe", 1, false);
    }
</script>

//I have done this but it doesnt work
<input type="button" value="Run Notepad" onclick="RunProgram"/>
<script language="VBScript"> 
Sub RunProgram 
    Set objShell = CreateObject("Wscript.Shell")
    objShell.Run "notepad.exe"
End Sub
</script>

我需要使用Firefox或chrome,并且IE 使用此ActiveX

您可以使用自定义协议处理程序来完成此操作。您的";按钮";那么可能只是一个链接:

<a href="mycustomprotocol:foobar">Click to open app</a>

要使此功能真正发挥作用,您需要在打开链接的计算机上注册应用程序。如果你正在编写应用程序,那么你可能会在安装过程中这样做。如何注册应用程序取决于操作系统。这里有一篇关于它的文章。

作为一个在野外工作的例子,我刚刚参加的skype会议使用了以下网址:

<a href="lync15:confjoin?url=https%3A%2F%2Fwebpoolblu0b10.infra.lync.com%2FMeet%2F%3Forigurl%3DaHR...">

下面是允许它打开的相应注册表项:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTLync15]
@="URL:lync15 Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOTLync15DefaultIcon]
@="C:\PROGRA~1\MICROS~1\Office16\lync.exe"
[HKEY_CLASSES_ROOTLync15shell]
[HKEY_CLASSES_ROOTLync15shellopen]
[HKEY_CLASSES_ROOTLync15shellopencommand]
@="C:\PROGRA~1\MICROS~1\Office16\lync.exe "%1""

你不能。在现代web浏览器中,既不允许链接到file:// URL,也不允许创建未标记为脚本安全的ActiveX对象(如WshShell)。事实上,它们中的大多数根本不支持VBScript或ActiveX。

如果你被告知大学课程需要这样做,那么该课程教授的是过时的材料。我们无法解决这个问题。

相关内容

最新更新