如何在網頁上開啟Windows OS的應用程式
阿新 • • 發佈:2018-12-11
需求
最近有專案需要用到在網頁的管理系統點選裝置標識,開啟遠端桌面的需求,其要求就是能點選之後啟動開啟遠端桌面應用程式,想想其實不難,原本準備使用java Applet來實現,但是繞了 一圈發現applet現在狠多瀏覽器不再相容,使用起來確實麻煩。後來決定用如下方式實現。
登錄檔自定義瀏覽器協議
編寫登錄檔編輯檔案
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\rdp]
"URL Protocol"="D:\\app\\rdp.exe"
@="RdpProtocol"
[HKEY_CLASSES_ROOT\rdp\DefaultIcon]
@="D:\\app\\rdp.exe,1"
[HKEY_CLASSES_ROOT\rdp\shell\open\command]
@="\"D:\\app\\rdp.exe\" \"%1\""
注意其中的空行不能少,其中@
打頭表示登錄檔項的預設值,路徑一定要使用雙斜杆\\
否則不能插入項成功,指令碼執行時也不能正確報錯。
編寫RDP.exe
其實為什麼需要用到自己寫一個exe程式啦,問題在於,登錄檔方式傳參的時候他會把整個瀏覽器地址的內容全部傳入例如
rdp://127.0.0.1
在呼叫應用程式時,應用程式收到的引數是整個字串rdp://127.0.0.1
。如果我們直接用mstsc.exe
那他獲取到的引數就會錯誤,無法識別
為了簡化安裝,所以考慮比較簡單的語言,且與windows相容較好的語言來實現。且我們本身要在exe上做的功夫比較少,所以我們想到了用winc的Win32庫來實現一個exe或則用vbs。exe只需要丟過去就好了。後來想來最簡單應該是vbs好些,最後選擇採用VBS來實現
Dim ip
set args=Wscript.Arguments
ip = right(args(0) , len(args(0))-6)
set objWsh = CreateObject("WScript.Shell")
ip = replace(ip,"/","")
objWsh.Exec "mstsc -v "& ip
最後很遺憾,如果直接使用vbs瀏覽器還呼叫不上來。最後只能將vbs to exe了。