您的位置:IT教程网首页>软件开发教程>VB教程>WINDOWS SCRIPT HOST对象在VB中的使用

WINDOWS SCRIPT HOST对象在VB中的使用

我们知道在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语句可以建立和修改一个项或者值,假如第一个参数字符串最后有一个“\”符号的话就是操作一个项,否则就是操作一个值。

共2页: 上一页 1 [2] 下一页