ActiveXObject函数详解
生活随笔
收集整理的這篇文章主要介紹了
ActiveXObject函数详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是 ActiveX 控件? ActiveX 控件廣泛用于 Internet。它們可以通過提供視頻、動畫內容等來增加瀏覽的樂趣。不過,這些程序可能出問題或者向您提供不需要的內容。在某些情況下,這些程序可被用來以您不允許的方式從計算機收集信息、破壞您的計算機上的數據、在未經您同意的情況下在您的計算機上安裝軟件或者允許他人遠程控制您的計算機??紤]到這些風險,您應該在完全信任發行商的情況下才安裝這些程序。 當 Windows 阻止 ActiveX 控件的安裝時,您應該做什么? 您可能不應該安裝該 ActiveX 控件。安裝 Windows 阻止的 ActiveX 控件是極為冒險的事情。如果 Internet Explorer 安全設置處于默認級別,并且 ActiveX 控件沒有有效的數字簽名,Windows 就會阻止該 ActiveX 控件的安裝。 有效的數字簽名可確認發行商的標識(分發文件的公司、網站或個人),并確認文件自簽名以后沒有被篡改過這一事實。如果文件沒有有效的數字簽名,您就無法確定文件是否真的來自它所聲明的來源,或者它是否沒有被篡改過(例如,可能會有病毒插入控件中)。除非您信任發行商,并且知道文件打開后內容會是安全的,否則,就不應該打開文件。 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(); ? ? 下面我們來看看怎樣創建遠程服務器中創建對象,但是這有一個前提就是要將Internet安全性關閉。要在遠程網絡計算機創建對象,可以將該計算機的名稱傳遞給 ActiveXObject 的 servername 參數。該名稱與共享名的機器名部分相同。比如共享名為 "\\myserver\public" 的網絡,servername 是 "myserver"。另外,可以用 DNS 格式或 IP 地址指定 servername。下面的代碼返回在名為 "myserver" 的遠程網絡計算機上運行的 Excel 實例的版本號:
1 function GetAppVersion() {
2???? var XLApp = new ActiveXObject("Excel.Application", "MyServer");
3???? return(XLApp.Version);
4 }
如果指定的遠程服務器不存在或找不到時將會發生錯誤。javascript取得機器名,用戶名,讀寫注冊表,啟動應用程序????? //javascript有個特殊的對象ActiveXObject,通過它可以訪問windows的本地文件系統和應用程序,????? 比如:有的時候我們需要得到用戶的機器名,用戶名,得到某個文件的信息,或者讀寫注冊表,或者啟動計算器、outlook等應用程序。????? ???? 下面是一些常用的方法,每個都經過了測試。????? <script?language="JavaScript">????? //取得機器名,登錄域及登錄用戶名????? function?getusername()????? {????? var?WshNetwork?=?new?ActiveXObject("WScript.Network");????? alert("Domain?=?"?+?WshNetwork.UserDomain);????? alert("Computer?Name?=?"?+?WshNetwork.ComputerName);????? alert("User?Name?=?"?+?WshNetwork.UserName);????? }????? ???? //取得系統目錄????? function?getprocessnum()????? {????? ????????var?pnsys=new?ActiveXObject("WScript.shell");????? ????????pn=pnsys.Environment("PROCESS");????? ????????alert(pn("WINDIR"));????? }????? //返回系統中特殊目錄的路徑????? function?getspecialfolder()????? {????? ????var?mygetfolder=new?ActiveXObject("WScript.shell");????? ????if(mygetfolder.SpecialFolders("Fonts")!=null)????? ????{????? ????????alert(mygetfolder.SpecialFolders("Fonts"));????? ?????}????? }????? //取得磁盤信息?傳入參數如:getdiskinfo('c')????? function?getdiskinfo(para)????? {????? ????var?fs=new?ActiveXObject("scripting.filesystemobject");????? ????d=fs.GetDrive(para);????? ????s="卷標:"?+?d.VolumnName;????? ????s+="------"?+?"剩余空間:"?+?d.FreeSpace/1024/1024?+?"M";????? ????s+="------"?+?"磁盤序列號:"?+?d.serialnumber;????? ????alert(s)????? }????? //取得系統目錄????? function?getprocessnum()????? {????? ????????var?pnsys=new?ActiveXObject("WScript.shell");????? ????????pn=pnsys.Environment("PROCESS");????? ????????alert(pn("WINDIR"));????? }????? //啟動計算器????? function?runcalc()????? {????? ????var?calc=new?ActiveXObject("WScript.shell");????? ????calc.Run("calc");????? }????? //讀取注冊表中的值????? function?readreg()????? {????? ????var?myreadreg=new?ActiveXObject("WScript.shell");????? ????try{????? ????????alert(myreadreg.RegRead?????????????("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\NeroCheck"));????? ?????}????? ????catch(e)????? ????{????? ????????alert("讀取的值不存在!");????? ?????}????? }????? //寫注冊表????? function?writereg()????? {????? ????var?mywritereg=new?ActiveXObject("WScript.shell");????? ????try{????? ????????mywritereg.RegWrite("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest","c:\\mytest.exe");????? ????????alert("寫入成功!");????? ?????}????? ????catch(e)????? ????{????? ????????alert("寫入路徑不正確!");????? ?????}????? }????? //刪除注冊表????? function?delreg()????? {????? ????var?mydelreg=new?ActiveXObject("WScript.shell");????? ????if(confirm("是否真的刪除?"))????? ????{????? ????????try{????? ????mydelreg.RegDelete("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest");????? ????alert("刪除成功!");????? }????? catch(e)????? {????? ????alert("刪除路徑不正確");????? }????? ?????}????? }????? //取得文件信息????調用方式如:getfileinfo('c:\\test.pdf')????? function?getfileinfo(para)????? {????? ????var?myfile=new?ActiveXObject("scripting.filesystemobject");????? ????var?fi=myfile.GetFile(para);????? ????alert("文件類型:"+fi.type+"文件大小:"+fi.size/1024/1024+"M"+"最后一次訪問時間:"+fi.DateLastAccessed);????? }????? //取得客戶端的信息????? function?clientInfo()????? {????? ????strClientInfo="availHeight=??????"+window.screen.availHeight+"\n"+????? "availWidth=??????"+window.screen.availWidth+"\n"+????? "bufferDepth=??????"+window.screen.bufferDepth+"\n"+????? "colorDepth=??????"+window.screen.colorDepth+"\n"+????? "colorEnable=??????"+window.navigator.cookieEnabled+"\n"+????? "cpuClass=??????"+window.navigator.cpuClass+"\n"+????? "height=??????"+window.screen.height+"\n"+????? "javaEnable=??????"+window.navigator.javaEnabled()+"\n"+????? "platform=??????"+window.navigator.platform+"\n"+????? "systemLanguage=??????"+window.navigator.systemLanguage+"\n"+????? "userLanguage=??????"+window.navigator.userLanguage+"\n"+????? "width=??????"+window.screen.width;????? ????alert(strClientInfo);???????? }????? ???? </script>????? ???? //另存為excel文件并寫入值????? function?saveas(){????? var?ExcelApp?=?new?ActiveXObject("Excel.Application");????? var?ExcelSheet?=?new?ActiveXObject("Excel.Sheet")????? ?ExcelSheet.Application.Visible?=?true;????? ?ExcelSheet.ActiveSheet.Cells(1,1).Value?=?"This?is?column?A,?row?1";????? ?ExcelSheet.SaveAs("C:\\TEST.XLS");????? ?ExcelSheet.Application.Quit();????? ?alert('ok');????? }
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(); ? ? 下面我們來看看怎樣創建遠程服務器中創建對象,但是這有一個前提就是要將Internet安全性關閉。要在遠程網絡計算機創建對象,可以將該計算機的名稱傳遞給 ActiveXObject 的 servername 參數。該名稱與共享名的機器名部分相同。比如共享名為 "\\myserver\public" 的網絡,servername 是 "myserver"。另外,可以用 DNS 格式或 IP 地址指定 servername。下面的代碼返回在名為 "myserver" 的遠程網絡計算機上運行的 Excel 實例的版本號:
1 function GetAppVersion() {
2???? var XLApp = new ActiveXObject("Excel.Application", "MyServer");
3???? return(XLApp.Version);
4 }
如果指定的遠程服務器不存在或找不到時將會發生錯誤。
轉載于:https://www.cnblogs.com/Nina-piaoye/archive/2013/03/25/2980142.html
總結
以上是生活随笔為你收集整理的ActiveXObject函数详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA基础加强(张孝祥)_类加载器、分
- 下一篇: 解决Android中无法搜索联系人的问题