問題描述:
現在希望在Web端使用JS調用本地應用程序
問題解決:
(1)使用JS啟動本地應用程序
使用上述代碼重點是創建了一個ActiveXObject的對象
參考說明:
JavaScript中ActiveXObject對象是啟用並返回 Automation 對象的引用。使用方法:
newObj = new ActiveXObject( servername.typename[, location])
ActiveXObject 對象語法有這些部分:
其中newObj是必選項。要賦值為 ActiveXObject 的變量名。
servername是必選項。提供該對象的應用程序的名稱。
typename是必選項。要創建的對象的類型或類。
location是可選項。創建該對象的網絡服務器的名稱。
Automation服務器至少提供一類對象,例如字處理應用程序可能提供應用程序對象、文檔對象和工具欄對象。
例如要創建Excel的Application和Sheet對象,代碼如下:
var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet")
一旦對象被創建,就可以用定義的對象變量在代碼中的引用它。下面我們將通過一個例子來看看對對象和方法的引用,通過對象變量 ExcelSheet 訪問新對象的屬性和方法和其他 Excel 對象,包括 Application 對象和 ActiveSheet.Cells 集合。代碼如下:
1 ExcelSheet.Application.Visible = true;
2 ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
3 ExcelSheet.SaveAs("C:\\TEST.XLS");
4 ExcelSheet.Application.Quit();
(2)經過(1)的代碼設置之后,就可以執行程序,但是ActiveXObject是在瀏覽器中執行的,瀏覽器需要進行一些設置保證上述JS代碼可以正常的執行。
具體設置如下;
如上所示可以對計算機的ActiveX控件和插件進行設置,使得可以正常執行IE調用本地應用程序
(2)使用JS調用屏幕鍵盤
上述JS中的代碼:
var obj=new ActiveXObject('wscript.shell');
obj.run("osk"); //打開屏幕鍵盤
obj.run(location); //其中location是QQ應用程序的本地地址(地址需要使用“//”)
如上圖所示中的鍵盤就是 使用JS調用出來的屏幕鍵盤