javascript activexobject_activex控件

javascript activexobject_activex控件一、什么是ActiveX控件?    ActiveX控件广泛用于Internet。它们可以通过提供视频、动画内容等来增加浏览的乐趣。不过,这些程序可能出问题或者向您提供不需要的内容。在某些情况下,这些程序可被用来以您不允许的方式从计算机收集信息、破坏您的计算机上的数据、在未经您同意的情况下在您的计算机上安装软件或者允许他人远程控制您的计算机。一般软件需要用户单独下载然后执行

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 一、什么是 ActiveX 控件?

Microsoft ActiveX 控件是由软件提供商开发的可重用的软件组件。使用 ActiveX 控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。例如,StockTicker 控件可以用来在网页上即时地加入活动信息,动画控件可用来向网页中加入动画特性。

  
现在,已有 1000 多个商用的 ActiveX 控件。开发控件可以使用各种编程语言,如 C,C++,下一代的Microsoft Visual Basic,以及微软公司的 Visual Java 开发环境 Microsoft Visual J++。ActiveX 控件一旦被开发出来,设计和开发人员就可以把它当作预装配组件,用于开发客户程序。以此种方式使用 ActiveX 控件,使用者无需知道这些组件是如何开发的,在很多情况下,甚至不需要自己编程,就可以完成网页或应用程序的设计。

ActiveX 控件广泛用于 Internet。它们可以通过提供视频、动画内容等来增加浏览的乐趣。不过,这些程序可能出问题或者向您提供不需要的内容。在某些情况下,这些程序可被用来以您不允许的方式从计算机收集信息、破坏您的计算机上的数据、在未经您同意的情况下在您的计算机上安装软件或者允许他人远程控制您的计算机。
一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装。 ActiveX插件安装的一个前提是必须经过用户的同意及确认。考虑到这些风险,您应该在完全信任发行商的情况下才安装这些程序。


二、ActiveXObject对象详解

JavaScript中ActiveXObject对象是启用并返回 Automation对象的引用。
使用方法:newObj = new ActiveXObject( servername.typename[, location])

其中newObj是必选项。要赋值为 ActiveXObject 的变量名。
       servername是必选项。提供该对象的应用程序的名称。
       typename是必选项。要创建的对象的类型或类。
       location是可选项。创建该对象的网络服务器的名称。

Automation服务器至少提供一类对象,例如字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。通常先用window.ActiveXObject判断下浏览器是否支持ActiveXObject对象。


 三、ActiveXObject的常用对象及用法:

(1)WScript.Network
  [1]  取得机器名,登录域及登录用户名  

function getusername()     
{    
	var WshNetwork = new ActiveXObject("WScript.Network");    
	alert("Domain = " + WshNetwork.UserDomain);     
    alert("Computer Name = " + WshNetwork.ComputerName);     
    alert("User Name = " + WshNetwork.UserName);      
}    


(2)WScript.shell

[1] 取得系统目录 

function getprocessnum()     
{     
	var pnsys=new ActiveXObject("WScript.shell");     
	pn=pnsys.Environment("PROCESS");     
	alert(pn("WINDIR"));     
}      

  [2]  返回系统中特殊目录的路径

function getspecialfolder()     
{     
	var mygetfolder=new ActiveXObject("WScript.shell");     
	if(mygetfolder.SpecialFolders("Fonts")!=null)     
	{     
		alert(mygetfolder.SpecialFolders("Fonts")); 	   
	}   
} 
  [3]  启动计算器

function runcalc()     
{     
	var calc=new ActiveXObject("WScript.shell");     
	calc.Run("calc");     
}  

  [4]  注册表操作

//读注册表
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("删除路径不正确");     
		}     
	}     
}   

 [7]  调用exe文件

function Run(strPath)  
{     
   try     
   {     
    var objShell = new ActiveXObject("wscript.shell");     
    objShell.Run('file:///D:/Program%20Files/Tencent/QQ/QQProtect/Bin/QQProtect.exe');     
    objShell = null;     
   }     
   catch(e)  
   {  
        alert('找不到文件"'+strPath+'"(或它的组件之一)。请确定路径和文件名是否正确.')     
   }     
}     


(3)Scripting.filesystemobject

  [1]  取得磁盘信息 传入参数如:getdiskinfo(‘c’)  

function getdiskinfo(para)     
{     
	var fs=new ActiveXObject("scripting.filesystemobject");     
	d=fs.GetDrive(para);     
	s="卷标:" + d.VolumeName;     
	s+="------" + "剩余空间:" + d.FreeSpace/1024/1024 + "M";     
	s+="------" + "磁盘序列号:" + d.serialnumber;     
	alert(s);   
}  
  [2]  文件操作
//取得文件信息    调用方式如: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);       
} 
//遍历目录    调用方式如:enumFolders('c:\\')
function enumFolders(para){
	 var fso = new ActiveXObject("Scripting.FileSystemObject");
	 var fldr = fso.GetFolder(para);
     var file = new Enumerator(fldr.files);
	 var folderArr = [];
	 var folder = new Enumerator(fldr.SubFolders);
	 for (; !folder.atEnd(); folder.moveNext()){
			var folderStr = String(folder.item());
			folderArr.push(String(folder.item()).substring(folderStr.lastIndexOf("\\")+1,folderStr.length));
	 }
	 
	 alert(folderArr.join(" "));
}

//遍历文件    调用方式如:enumFiles('c:\\')
function enumFolders(para){
	 var fso = new ActiveXObject("Scripting.FileSystemObject");
	 var fldr = fso.GetFolder(para);
     var file = new Enumerator(fldr.files);
	 var fileArr = [];
	 for (; !file.atEnd(); file.moveNext()){
		 var fileStr = String(file.item());
		 fileArr.push(String(file.item()).substring(fileStr.lastIndexOf("\\")+1,fileStr.length));
     }
	 
	 alert(fileArr.join(" "));
}

  [3]  创建文件

function createText1(){
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var f1 = fso.createtextfile("c:\\myjstest.txt",true);
        f1.WriteLine("这是内容"); 
        f1.close();

        var kk=fso.OpenTextFile("c:\\a.txt");//打开文件  
        while(!kk.atEndOfLine){  
            document.writeln(kk.readLine());//读取文件,并输出  
        }
}  
}
function createText2(){
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var f1 = fso.GetFile("c:\\myjstest.txt");
}


(4)WbemScripting.SWbemLocator

  [1] 获取系统CPU
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
function getCpu()
{
    var service = locator.ConnectServer(".");
    var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
    var e = new Enumerator (properties); 
    var p = e.item ();
    return p.LoadPercentage; 
} 


附录:取得客户端的信息

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);        
} 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181907.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月14日 下午10:46
下一篇 2022年10月14日 下午10:46


相关推荐

  • ajax示例_ajax22

    ajax示例_ajax22script language=”javascript”>function deleteobject(id)…{    if (window.XMLHttpRequest)…{            xmlhttp = new XMLHttpRequest();        }else…{            xmlhttp = new ActiveXObject(“Micro

    2022年8月16日
    7
  • 基础数论略讲

    基础数论略讲

    2021年9月28日
    43
  • 转载:QT版本系列介绍[通俗易懂]

    转载:QT版本系列介绍[通俗易懂]
    一、Qt简介
    Qt工具包是一个跨平台的C++开发工具。Qt被主要用在了KDE桌面环境的开发中。它是挪威Trolltech公司的产品,2008年6月17日被芬兰的诺基亚(Nokia)公司收购,以增强该公司在跨平台软件研发方面的实力。
    使用Qt开发的软件,可以在任何支援的平台上编译与执行,而不需要修改源代码。可以实现本平台的图形界面风格,也可实现其它平台的图形界面风格。比如您可以在MicrosoftWindows平台下编译出具有苹果公司MacOS图形界面风格的应用程序。

    2022年5月16日
    58
  • 惠普台式机如何装系统_惠普的台式机如何用u盘安装系统

    惠普台式机如何装系统_惠普的台式机如何用u盘安装系统惠普在计算机行业是一个很有声誉的品牌,无论是台式机还是笔记本,惠普都是一款值得考虑和购买的品牌产品之一。但是当计算机系统出了问题需要重装系统时,很多人并不知道如何进行系统的重装,那么惠普的台式机如何进行重装系统呢?下面介绍一下台式小机惠普电脑怎么装系统。惠普电脑装系统步骤阅读1、打开浏览器搜索云骑士官网,找到云骑士官网并点击打开。2、在官网下载云骑士一键重装系统软件,下载后打开云骑士装机大师。3、…

    2022年8月13日
    7
  • redis 消息队列 延时队列

    redis 消息队列 延时队列Springboot2 0 基于 Redis 快速实现消息队列 pub sub 功能 Springboot Redis 实现消息队列 生产者 消费者 发布订阅模式 SpringBoot 基于事件的 Redis 消息队列实现异步操作 redis 实现消息队列 Redis 发布订阅传对象消息队列 基于 Redisson SpringBoot 整合 Redis 延时队列的简单实现 基于有赞的设计 延时队列 基于 Redisson 实现的延时队列生成订单 30 分钟未支付 则自动取消 该怎么实现 Redis 实现关闭订单

    2026年3月18日
    1
  • Windows wpf(下载应用介绍教程)

    一、窗体类基本概念    对于WPF应用程序,在VisualStudio和ExpressionBlend中,自定义的窗体均继承System.Windows.Window类。用户通过窗口与WindowsPresentationFoundation(WPF)独立应用程序进行交互。窗口的主要用途是承载可视化数据并使用户可以与数据进行交互的内容。独…

    2022年4月13日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号