非IE瀏覽器打開IE並訪問指定鏈接


轉載

部分內容轉載自: http://blog.sina.com.cn/s/blog_e2b8213a0102wqby.html

注冊表 定義協議

項目中遇到某需求:chorme要運行IE並打開網頁。解決方案之一就是通過自定義協議來實現該需求。
在注冊表中寫入如下內容來進行自定義協議:
復制代碼

[HKEY_CLASSES_ROOT\openIE]  
@="URL:OpenIE Protocol"  
"URL Protocol"=""  

[HKEY_CLASSES_ROOT\openIE\DefaultIcon]  
@="iexplore.exe,1"  

[HKEY_CLASSES_ROOT\openIE\shell]  
  
[HKEY_CLASSES_ROOT\openIE\shell\open]  
  
[HKEY_CLASSES_ROOT\openIE\shell\open\command]  
@="cmd /c set m=%1 & call set m=%%m:openIE:=%% & call \"C:\\Program Files\\Internet Explorer\\iexplore.exe\" %%m%% & exit" 

復制代碼

使用示例

然后使用openIE協議,如點我使用外部協議運行IE打開百度進行訪問百度。
但是這樣會彈出cmd的命令框,給用戶帶來不好的體驗。解決方法如下:

鏈接:http://pan.baidu.com/s/1sllgzxV 密碼:ugpk

內容是一個可以解壓的exe,解壓后有三個文件:alert.reg 與上邊的openie協議大同小異,將協議名稱換成了alert。
復制代碼

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\alert]
@="URL:Alert Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\alert\DefaultIcon]
@="iexplore.exe,1"

[HKEY_CLASSES_ROOT\alert\shell]

[HKEY_CLASSES_ROOT\alert\shell\open]

[HKEY_CLASSES_ROOT\alert\shell\open\command]
@="cmd /c set m=%1 & \"C:\\Program Files\\alert\\openIE.bat\" %%m%% & exit"

並且將command換成了bat文件,不再是直接打開ie。bat文件內容入下:

@echo off
set m=%m:alert:=%
set m="%m:separator=&%"
start "" "C:\\Program Files\\Internet Explorer\\iexplore.exe" %m%
exit

這些命令雖然寫不出來,但是不妨礙我們讀懂,將使用alert協議訪問的地址作為參數進行處理,然后通過ie打開。

最后一個文件是runreg.bat,內容如下:

REGEDIT /S alert.reg

很顯然作為exe,雙擊執行的就是這個regedit,將注冊表寫好的同時,也將openie.bat復制到了C:\Program Files\alert\路徑下,雖然不知道它是如何實現的,但是不妨礙我進行改造處理。比如給換個路徑,比如換一個執行程序(當然執行程序支持命令行參數啟動)。

自定義協議可以幫助我們通過瀏覽器打開本地程序,當然不僅限於此。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM