网页如何有效调用exe
想做個網游的半點自動登錄器,在Web上調用本地exe文件的時候IE總是會彈出對話框是否允許運行,很麻煩,如果把安全性設置低的話又很危險,網上找了下,找到這個解決辦法,相對比較安全,又不會彈出對話框,只是360還是會提示不安全,正常吧,畢竟沒有十全十美的,以下為解決辦法:
?
基于瀏覽器的應用,表現力始終不夠豐富,我們常常會想,在一個網頁中,點一下某個鏈接,能夠直接調用安裝好的可執行程序有多好啊。按照微軟的推薦,應該是通過ActiveX,把可執行程序嵌入到網頁中,例如flash的ActiveX。這樣,我們就要購買ActiveX的簽名,不通過簽名的東西,在IE6中是無法加載的,為一個小項目購買ActiveX的簽名,代價太昂貴了。另外,很多時候還要考慮如果用戶突然關閉了瀏覽器該怎么辦。這對播放個flash、歌曲之類的沒多大影響,但是很多時候,不能在關閉前清掃戰場,帶來的后果是災難性的。通常,在企業應用中,我們總是通過IE直接調用exe。 最早的時候,從網頁調用一個EXE是很簡單的事情,一段javascript就可以了。但是,自從IE6開始,微軟就不再允許這種“極不安全的行為”。這也是有道理的。沒事就給你來個“format d:/q”,即使不這么惡劣,動不動就給你彈幾百個notebook,也確實夠恐怖的。瀏覽器不應該與操作系統有太多不必要的關聯。 拿javascript在IE6測試之后,我幾乎放棄了直接調用exe的想法,直到有一天,看到了騰訊的實現方法。 騰訊有一個在網頁上面顯示QQ狀態的東西,點一下就能彈出一個對話框跟該QQ用戶聊天(就是我blog左上方的那個Q我的小圖標),而不會有任何警告。好神奇啊。注冊表里面研究了一天,終于明白了怎么回事。
在windows中,注冊表中包含各種協議(http,ftp,telnet等)的信息,包含了默認打開方式的參數。試一下,從IE的地址欄中輸入telnet://www.163.com,出現什么了?彈出了一個命令行窗口,開始進行telnet操作。IE居然能完成這個,那么為什么就不能完成“telnet1://參數” 呢?
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/SIMS] @="SIMS" "URL Protocol"="C://PROGRA~1//SIMS//trans.exe %l"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/SIMS/DefaultIcon] @="%SystemRoot%//system32//url.dll,0"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/SIMS/Shell]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/SIMS/Shell/open]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/SIMS/Shell/open/command] @="C://PROGRA~1//SIMS//trans.exe %l"
把這個東西導入注冊表,那么我們在瀏覽器中輸入sims://1022,那么就會自動調用c:/program files/sims/trans.exe(當然了,你得確實有這個文件),并把1022這個參數傳給該exe。這個操作被認為是安全的,不會有任何的限制。 到這里,思路就清晰了,我們的安裝程序中,在注冊表中建個協議,例如上面的SIMS,再把要執行的exe的路徑信息寫入,在網頁直接一個超鏈接,協議://參數就可以了。exe文件接受這個參數,進行相應的處理。搞定。
記住,協議://后面的所有字符串被看做是一個參數。那么,exe文件永遠只有兩個參數,參數0是它的完整執行路徑,參數1就是網頁傳過來的字符串。
轉載于:https://www.cnblogs.com/shanhe/p/3987622.html
總結
以上是生活随笔為你收集整理的网页如何有效调用exe的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让自己快乐的钥匙
- 下一篇: Dynamics CRM2013 自定义