繁体   English   中英

使用IE从网页检测Windows中已注册的协议

[英]Detect registered protocols in Windows from web page using IE

MS Windows程序可以将某些协议与它们关联。 因此,当您在浏览器中单击时,将打开协议“ myprotocol”的注册程序。 像“ mailto:mail@mail.ru”一样打开您的电子邮件程序。

我有一个网站,想知道我网站的访问者是否在他的系统中注册了某些协议。 因此,当他单击链接并且没有协议注册诸如“请安装我的程序”之类的页面时。 否则将启动注册程序。 如何使用javascript或avtiveX或其他工具执行此操作?

我知道如何针对Firefox和Crome(使用“ Location”标头和iframe)执行此操作,但不知道如何针对IE和Opera执行此操作。 请帮我。

我曾经做过这种事情。 我所做的是,在安装程序中,我在HKEY_CLASSES_ROOT中注册了MyProgram.IsInstalled密钥,其CLSID与Scripting.Dictionary相同。 然后,在JavaScript中,我尝试执行var isInstalled = new ActiveXObject("MyProgram.IsInstalled"); 如果可以,我的程序就安装好了(我有一个方便的新Scripting.Dictionary实例,我立即扔掉了它)。 如果不是,那不是。

目前无法直接在IE中检测任意协议,因为我们一直为此削减我提出的API。 当前,您必须为此使用ActiveX控件。

对于特定的协议,您应该只向版本向量注册组件,然后可以通过条件注释来检测它: http : //msdn.microsoft.com/zh-cn/library/ms537512(VS.85).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM