1. 程式人生 > >如何在網頁上開啟Windows OS的應用程式

如何在網頁上開啟Windows OS的應用程式

需求

最近有專案需要用到在網頁的管理系統點選裝置標識,開啟遠端桌面的需求,其要求就是能點選之後啟動開啟遠端桌面應用程式,想想其實不難,原本準備使用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了。

VBS TO EXE