在windows中,注册表中包含各种协议(http,ftp,telnet等)的信息,包含了默认打开方式的参数。试一下,从IE的地址栏中输入telnet://www.163.com,出现什么了?弹出了一个命令行窗口,开始进行telnet操作。IE居然能完成这个,那么为什么就不能完成“telnet1://参数” 呢?
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\SIMS]
@="SIMS Protocol"
"URL Protocol"="C:\\PROGRA~1\\sims\\trans.bat %1"
[HKEY_CLASSES_ROOT\SIMS\shell\open\command]
@="C:\\PROGRA~1\\sims\\trans.bat %1"
把这个东西导入注册表,那么我们在浏览器中输入sims://local1123,那么就会自动调用c:/program files/sims/trans.bat(当然了,你得确实有这个文件),并把local1123这个参数传给该bat。这个操作被认为是安全的,不会有任何的限制。
到这里,思路就清晰了,我们的安装程序中,在注册表中建个协议,例如上面的SIMS,再把要执行的bat的路径信息写入,在网页直接一个超链接,协议://参数就可以了。bat文件接受这个参数,进行相应的处理。搞定。
参数%1就是网页传过来的字符串