WINDOWS SCRIPT HOST对象在VB中的使用

转载 2007年10月01日 23:51:00
  我们知道在DOS下我们可以利用批处理文件来执行一些基本的系统和文件操作。而为了让用户能在Windows下同样得到功能,微软提供了Windows Script Host。在本文中我向大家介绍的是如何在VB中使用Windows Script Host对象来丰富自己的程序。
  打开VB,点击菜单中的Project|References项,在弹出的References列表中如果有一项:Windows Script Host Object Modle。那么说明你的系统中已经安装了Windows Script Host对象,选中该对象然后再按确定键就可以将Windows Script Host对象加入到自己的工程中了。 

  1、获得Windows下一些特殊目录 

  如何获得Windows下一些特殊的文件目录(例如桌面、程序菜单)呢?使用下面的程序就可以获得这些特殊目录并在ListBox1中列出: 

  Dim iw1 As New IWshRuntimeLibrary.IWshShell_Class 

   List1.AddItem iw1.SpecialFolders("Desktop") 

  '获得桌面目录 

  List1.AddItem iw1.SpecialFolders("Fonts") 

  '获得系统字体目录 

  List1.AddItem iw1.SpecialFolders("Programs") 

  '获得程序菜单目录 

  List1.AddItem iw1.SpecialFolders("StartUp") 

  '获得程序启动目录 

  List1.AddItem iw1.SpecialFolders("Recent") 

  '获得最近使用文件目录 

  List1.AddItem iw1.SpecialFolders("FAVORITES") 

  '获得收藏夹目录 

  List1.AddItem iw1.SpecialFolders("SENDTO") 

  '获得发送到目录 

  List1.AddItem iw1.SpecialFolders("NETHOOD") 

  '获得网络邻居目录 

  List1.AddItem iw1.SpecialFolders("AppData") 

  '获得微软程序数据目录 

  2、运行程序 

  在VB中,我们有时候需要调用外部程序。而且还要暂停VB程序等待外部程序程序执行完毕。使用Windows Script Host对象,简直易如反掌。例如下面的语句: 

  Dim iw1 As New IWshRuntimeLibrary.IWshShell_Class 

  iw1.Run "c:/windows/notepad.exe",WshMaximizedFocus, True 

  就可以执行Windows下的记事本程序并使当前程序等待直到记事本程序关闭再执行下面的语句,如果不需要等待,将Run语句中的第三个参数从True改为False就可以了。

  3、建立和断开网络驱动器映射 

  在一般情况下要在VB中建立网络驱动器连接需要使用复杂的API函数,而使用了Windows Script Host对象就可以使得一切变得十分简单,来看下面的范例: 

  Dim iwNet As New IWshNetwork_Class 

  '获得计算机名 

  Debug.Print iwNet.ComputerName 

  '获得用户所在的域名 

  Debug.Print iwNet.UserDomain 

  '获得用户名 

  Debug.Print iwNet.UserName 

  '将网络上的主机Server1的共享驱动器Share_d映射为本机的H盘 

  iwNet.MapNetworkDrive "H:","//Server1/Share_d" 

  For i=0 To iwNet.EnumNetworkDrives.Count-1 

  List1.AddItem iwNet.EnumNetworkDrives(i) 

  Next i 

  上面的程序首先在Debug窗口中显示本计算机和所在网络的名称以及用户名,然后建立一个网络驱动器映射,最后将映射到本机的驱动器在ListBox1中列出来。如果要断开映射的驱动器,只要调用下面的语句就可以了: 

  '断开驱动器 

  iwNet.RemoveNetworkDrive "H:" 

  需要注意的一点是:调用Windows Script Host对象建立网络连接如果出现错误(例如要连接的主机不存在或驱动器错误),它不会象API函数那样返回一个错误码而会产生一个OLE错误,所以在程序中对于错误处理的代码一定要写好。 

  4、建立快捷方式 

  建立文件快捷方式并将快捷方式保存到文件也是Windows Script Host对象提供的功能之一,来看下面的代码: 

  Dim iw1 As New IWshRuntimeLibrary.IWshShell_Class 

  Dim iwSC As New IWshShortcut_Class 

  '建立一个快捷方式文件 

  Set iwSC=iw1.CreateShortcut("c:/windows/notepad1.lnk") 

  '设定快捷方式指向的对象 

  iwSC.TargetPath="c:/windows/notepad.exe" 

  '设定对象(这里是Notepad.exe)运行时的参数 

  iwSC.Arguments="c:/a.txt" 

  '设定对象运行时的工作目录 

  iwSC.WorkingDirectory="c:/" 

  '设定快捷方式的图标 

  iwSC.IconLocation="c:/windows/notepad.exe,1" 

  '保存快捷方式到文件 

  iwSC.Save 

  上面的程序建立一个指向Windows下记事本的快捷方式并保存到文件中。 

  5、注册表操作 

  使用Windows Script Host对象还可以进行注册表操作,例如建立、修改、读取、删除主键或者键值等。而且只需要三个函数,比使用Windows API来说方便的多。下面的语句就是一个建立和删除注册表键值的范例: 

  Dim WSHShell As New IWshRuntimeLibrary.IWshShell_Class 

  '在HKEY_CURRENT_USER下建立一个项,将默认值设置为Top level key 

  WSHShell.RegWrite "HKCU/MyRegKey/","Top level key" 

  '在MyRegKey下建立一个子项,将默认值设置为Second level key 

  WSHShell.RegWrite "HKCU/MyRegKey/Entry/","Second level key" 

  '在MyRegKey下建立一个值,名称为Value 

  WSHShell.RegWrite "HKCU/MyRegKey/Value", 1 

  '在MyRegKey下建立一个值,名称为Entry,类型设置为REG_DWORD 

  WSHShell.RegWrite "HKCU/MyRegKey/Entry",2,"REG_DWORD" 

  WSHShell.RegWrite "HKCU/MyRegKey/Entry/Value1",3,"REG_BINARY" 

  '删除相应的键 

  WSHShell.RegDelete "HKCU/MyRegKey/Entry/Value1" 

  WSHShell.RegDelete "HKCU/MyRegKey/Entry/" 

  WSHShell.RegDelete "HKCU/MyRegKey/" 

  上面的程序建立并删除建立的项,要看到程序运行效果,可以将上面的最后三句RegDelete语句删除,然后打开注册表编辑器察看。从上面的语句可以看到,使用RegWrite语句可以建立和修改一个项或者值,如果第一个参数字符串最后有一个“/”符号的话就是操作一个项,否则就是操作一个值。 

  6、获得当前Windows环境参数 

  环境参数就是操作系统保存在内存中的一些标记或指示性字符串,它纪录了一些基本的系统设置,例如路径、临时文件目录等,使用Windows Script Host对象可以获得所有的Windows环境参数: 

  Dim iw1 As New IWshRuntimeLibrary.IWshShell_Class 

  Dim strinfo 

  For Each strinfo In iw1.Environment("Process") 

  List1.AddItem strinfo 

  Next 

  上面的程序得到当前所有的环境参数并在List1上列出来。 

  从上面我的介绍可以看到Windows Script Host对象的确是一个很有用的Windows系统操作对象,易于使用并且功能强大。(微软提供Windows Script Host对象以及另外一个文件操作对象Microsoft Scripting Run的另外一个目的是这两个对象可以在VB Script中建立,这样就可以通过Web执行文件和系统操作了,但是却被一些人利用,例如著名的I Love You 病毒,就是利用Windows Script Host对象操作注册表使自己附身Windows中,在利用Microsoft Scripting Run对象破坏系统文件) 

  以上程序用VB6编写,在Windows98、2000下运行通过。 

关于“Windows Script Host...”错误

   今天安装EVC&SDK时,安装过程中遇到一错误,信息如下:Windows Script Host access is disabled on this machine. Contact your...
  • huangtaoyuan
  • huangtaoyuan
  • 2009年08月07日 19:07
  • 20028

引用COM组件Windows Script Host Object Model,创建快捷方式

 string dk =System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop);//得到桌面文件夹   I...
  • add8849
  • add8849
  • 2004年12月27日 08:22
  • 2143

在windows中使用redis

一.Redis简介与安装 1.redis的定义         redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(...
  • EggsDevil
  • EggsDevil
  • 2016年03月28日 19:01
  • 346

在vb中调用执行VBScript, JScript, 或者其他一些合适的脚本语言,也许ruby之类的。仅仅作为下一步工作的笔记。

在vb中调用执行vbscript脚本。仅仅作为下一步工作的笔记。到微软的网站上下载Windows Script Control,它是一个ActiveX(R) 控件。下载安装完成后,新建一个vb应用程序...
  • caozhenyu
  • caozhenyu
  • 2009年11月07日 21:58
  • 2971

VB 显示内存中的图片

'假设Form 上已经存在Picture1的控件,并已经设置好图片Dim PBag As New PropertyBagDim B() As BytePBag.WriteProperty "Pictu...
  • lbuskeep
  • lbuskeep
  • 2011年02月15日 17:19
  • 3734

VB6对象浏览器的用法

估计不少书都把这个强大的工具忽略了,这里补充一下。在VB6的IDE里按下F2,或者选择【视图】菜单的【对象浏览器】菜单项,就可以打开对象浏览器。对象浏览器可以看到一个库中的全部类,模块,枚举的定义。...
  • JiLuoXingRen
  • JiLuoXingRen
  • 2013年07月27日 02:11
  • 6522

vb中的类与对象

vb的对象与类。vb,一个不是完全面向对象的编程语言,相对于其它高级编程语言来说,在它上面,基于对象的编程应用更为泛。对于对象,只不过是类的实例化罢了,而类,是众多对象的抽象的一个庞大集合。类实例化对...
  • u013067402
  • u013067402
  • 2014年08月27日 11:52
  • 5119

vbs(Visual Basic Script) 笔记

vbs(Visual Basic Script) 笔记   VBS是基于微软公司可视化Visual Basic的脚本语言,不编译成二进制文件, 直接由宿主(host)解释源代码并执行。 vbsVi...
  • timyao17
  • timyao17
  • 2016年12月19日 17:40
  • 429

VB中的Err对象

       在VB中经常会遇到错误的处理,Err是一个全局的对象。每个过程都最好防置一个处理错误的语句块,最好是On Err 放在第一行,在代码的最后防止处理错误的代码。下面总结一下关于Err的知识...
  • xudepeng0813
  • xudepeng0813
  • 2011年02月12日 20:30
  • 3477

VB中对象的声明和绑定

对象声明有一下集中办法: 1,直接声明和创建实例并赋值给变量 Dim ObjectVarName As New [ClassLibName.]ClassName 2,先声明一个对象变量类型,然后...
  • qq_38507850
  • qq_38507850
  • 2017年11月18日 11:31
  • 125
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WINDOWS SCRIPT HOST对象在VB中的使用
举报原因:
原因补充:

(最多只允许输入30个字)