Board logo

标题: [原创] VBS基础(2)WSH对象的方法 [打印本页]

作者: novaa    时间: 2007-12-7 19:06     标题: VBS基础(2)WSH对象的方法

此都是本人学习时候的笔记。手一个一个打出来的。5555.网上资料太少了转载注明bbs.bathome.net
  1. 一 WScript对象的方法
  2. 1.CreateObject
  3. 说明:通过应用StrProgID参数来创建一个对象。
  4. 语句:
  5. object.CreateObject(StrProgID[,StrPrefix])
  6. StrProgID:所创建脚本的程序ID.
  7. 例子:创建一个WshNetwork对象
  8. Set WshNetwork=WScript.CreateObject("WScript.Network")
  9. 2.ConnectObject
  10. 说明:用所给的前缀名功能来连接一个脚本的事件来源。
  11. 语句:
  12. object.ConnectObject StrObject,StrPrefix
  13. StrObject:被连接对象的名称。
  14. StrPrefix:事件功能的前缀。
  15. 下面的例子把一个假设的对象连接至脚本文件,然后脚本调用"SomeMethod".如果在对象中有一个名为"Event"的事件,那么将调用名为MyEvent_Event的子程序。
  16. //注读者可自己使用VB创建SomeObject对象
  17. Set MyObject=WScript.CreateObject("SomeObject")
  18. MyObject.SomeMethod
  19. WScript.ConnectObject MyObject,"MyEvent_"
  20. Sub MyEvent_Event(strName)
  21. WScript.Echo strName
  22. End Sub
  23. WScript.DisconnectObject MyObject
  24. 3.DisconnectObject
  25. 说明:从Windows Script Host 切断先前连接的对象。
  26. 参数:
  27. object:WScript对象。
  28. Obj:被结束的对象名.
  29. 4.Echo
  30. 说明:将输出内容发送至对话框或控制台。
  31. 语句:
  32. object.Echo [Arg1][,Arg2][,Arg3]...
  33. 参数
  34. object:WScript对象。
  35. Arg1,Arg2,Arg3...:所显示的 条目清单。
  36. 5.GetObject
  37. 说明:通过指定strProgID参数,从一个文件或一个对象取回一个自动对象。
  38. 语句:
  39. object.GetObject(strPathname[,strProgID][,strPrefix])
  40. 参数:
  41. StrPathname:必须,取回的对象必须包含文件的完整路径和名称。
  42. StrProgID:可选,代表对象的程序号.
  43. ps:使用GetObject方法时,必须有当前访问对象,或是已经调用了的要从其中创建对象的文件。如果没有当前对象或是不想从已调用的文件中创建对象,请使用CreateObject的方法。
  44. 6.Quit
  45. 说明:退出执行操作,并放回出错代码。
  46. 语句:
  47. object.Quit[intErrorCode]
  48. intErrorCode:可选猜数。如果使用此参数,WScript会把其作为处理退出的代码放回。如果intErrorCode被忽略,WScript会返回零作为处理退出的代码。
  49. 7.Sleep
  50. 说明:让脚本在执行过程中进入停止状态,时间单位为其指定的毫秒,然后继续。
  51. 语句:
  52. object.Sleep(int Time)
  53. ps:在睡眠时,脚本已经在处理的事件仍会执行完毕。如果脚本引擎超时或因其他原因中断,睡眠立即停止。
  54. 例子:
  55. (运行Windows 的计算器。并把击键值送入。进行简单的运算)
  56. Set WshShell=WScript.CreateObject("WScript.Shell")
  57. WshShell.Run "calc"
  58. WScript.Sleep 100
  59. WshShell.AppActivate "Calculator"
  60. WScript.Sleep 100
  61. WshShell.Sendkeys "1{+}"
  62. WScript.Sleep 500
  63. WshShell.Sendkeys "2"
  64. WScript.Sleep 500
  65. WshShell.Sendkeys "~"
  66. WScript.Sleep 500
  67. WshShell.Sendkeys "*3"
  68. WScript.Sleep 500
  69. WshShell.Sendkeys "="
  70. WScript.Sleep 2500
  71. 二:WshEnvironment对象的方法。
  72. 1.Remove
  73. 说明:用指定的strName删除环境变量。
  74. 语句:
  75. object.Remove(strName)
  76. 例子:以下的范例删除了 EXAMPLE这个环境变量,并删除了用户环境下的多种参数。
  77. Set WshShell=WScript.CreateObject("WScript.Shell")
  78. WshShell.Environment("VOLATILE").Remove("EXAMPLE")
  79. Set WshUsrEnv=WScript.Environment("User")
  80. WshUsrEnv.Remove("EXAMPLE_1")
  81. WshUsrEnv.Remove("EXAMPLE_2")
  82. WshUsrEnv.Remove("EXAMPLE_3")
  83. WshUsrEnv.Remove("EXAMPLE_4")
  84. 三:WshNetwork对象的方法
  85. 1.AddPrinterConnection
  86. 说明:用参数strRemoteName和strLocalName(本地资源名)来映射远程打印机。
  87. 语句:
  88. object.AddPrinterConnection strLocalName,strRemoteName[,bUpdateProfilr][,strUser][,strPassword]
  89. StrLocalName:本地资源名。
  90. strRemoteName:远程资源名。
  91. bUpdateProfile:可选参数,如果提供的bUpdateProfile的值是“TRUE”,那么这个映射会留在用户档案中。
  92. StrUset:可选。如果使用非当前用户的方式映射远程打印机,可以知道StrUser 和StrPassward
  93. 例子:连接网络打印机到LPT1端口。
  94. Set WshNetwork=CreateObject("WScript.Network")
  95. WshNetwork.AddPrinterConnection "LPT!","\\Server\Print]"
  96. 2 EnumNetworkDrives
  97. 说明:返回网络驱动器的映射。
  98. 语句:objDrives=object.EnumNetworkDrive
  99. 3.EnumPrinterConnection
  100. 说明:返回当前网络打印机的映射信息。
  101. 语句:objPrinters=object.EnumPrinterConnections
  102. ps:对于2和3方法。在信息的条目中有本地名和远程名,第一个条目是驱动器盘符,第二个条目是网络映射信息。这种模式用于网络映射信息集。
  103. 4.MapNetworkDrive
  104. 说明:用参数strRemoteName和strLocalName来映射共享信息。
  105. 语句:object.MapNetworkDrive strLocalName,strRemoteName,[bUpdateProfile],[strUser],[strPassword]
  106. 例子:把”Z“驱动器映射到网络共享:
  107. Set WshNetwork=WScript.CreateObject("WScript.Network")
  108. WshNetwork.MapNetworkDrive "Z:","\\Server\Share"
  109. 5 RemoveNetworkDrive
  110. 说明:用参数strName删除连接的当前资源。
  111. 语句:
  112. object.RemoveNetworkDrive strName,[bForce],[bUpdateProfile]
  113. bForce:可选参数。如果提供的值是“TRUE”,那么这个映射从用户档案中删除。
  114. 例子:把驱动器"Z"映射为网络共享,然后再删除此连接。
  115. Set WshNetwork=WScript.CreateObject("WScript.Network")
  116. WshNetwork.MapNetworkDrive "Z:","\\Server\Share"
  117. WshNetwork.RemoveNetworkDrive "Z:"
  118. 6.RemovePrinterConnection
  119. 参考 5
  120. 7. SetDefaultPrinter
  121. 说明:把指定的远程打印机设置为默认的打印机。
  122. 语句:
  123. object.SetDefaultPrinter strPrinterName
  124. 四 WshShell对象的方法
  125. 1. AppActivate
  126. 说明:激活一个应用程序的窗口
  127. 语句:AppActivate title
  128. 参数:
  129. title:必须。字符串代表要激活的应用程序窗口标题栏的标题。也可以用Shell功能返回的任务ID,代替激活应用程序。
  130. ps:AppActivate语句可以把工作对象转移至命名的应用程序或窗口,但不 影响其是最大化还是最小化。当用户采用某种操作改变工作对象,或者关闭这个窗口时,工作对象才会从激活的应用程序窗口转移。使用Shell功能来启动一个应用程序并设置其窗口样式。
  131. 2.CreateShortcut
  132. 说明:创建一个快捷方式或URL快捷方式的引用对象。
  133. 语句:object.CreateShortcut(strPathname)
  134. strPathname:被创建快捷方式的路径和名称。
  135. ps:一个WINDOWS的快捷方式必须是以".lnk"为扩张名。如果快捷方式以".url"结尾,即创建了一个URL快捷方式。
  136. 3.ExpandEnvironmentStrings
  137. 说明:在运行过程中扩张环境变量,并将结果的字符串返回。
  138. 语句:object.ExpandEnvironmentStrings(strString)
  139. 参数:strString:要扩展的环境变量名
  140. ps:变量必须用"%"加在前后。环境变量必须是不敏感的。
  141. 例子:扩展了WINDIR环境变量,并且在消息框中显示。
  142. set WshShell=CreateObject("WScript.Shell")
  143. WScript.Echo "WinDir is "&WshShell.ExpandEnvironmentStrings("%WinDir%")
  144. 4.LogEvent
  145. 说明:把事件记录到Windows NT事件日志或WSH.log文件。
  146. 语句:object.LogEvent(intType,strMessage[,strTarget])
  147. intType:数值代表了事件的类型。
  148. strMessageog条目的正文。
  149. strTarget:可选参数。只可选Windows NT。即事件记录在哪个系统。默认是本地系统。
  150. 5.Popup
  151. 说明:显示一个popup对话窗口。其中包含了字符串文本的信息。
  152. 语句:
  153. intButton=object.Popup(steText,[natSecondsToWait],[strTitle],[natType])
  154. strText:在popup窗口显示的文本。
  155. NatSecondsToWait:可选。在关闭popup窗口前等待的时间,秒。
  156. StrTitle:可选参数。在popup窗口显示的标题。
  157. NatType:可选参数。在popup窗口显示的按钮和图标类型。
  158. 例子:
  159. Set WshShell=WScript.CreateObject("WScript.Shell")
  160. WshShell.popup "Welcome to bbs.bathome.net",2,"novaa"
  161. 对于VBS对注册表操作的请看专门的一篇文章
  162. 6.RegDelete
  163. 说明:用strName参数从注册表删除键值。
  164. strName:要删除的键或数值。
  165. ps:如果strName以(\)结尾,这样删除的是键值而不是数值,StrName参数必须以如下键名开头。
  166. HKCU KEY_CURRENT_USER
  167. HKLM HKEY_LOCAL_MACHINE
  168. HKCR HKEY_CLASS_ROOT
  169. HKEY_USERS
  170. HKEY_CURRENT)CONFIG
  171. 7.RegRead
  172. 语句bject.RegRead(strName)
  173. 说明:用strName参数返回注册表的键值或数值。
  174. 8.RegWrite
  175. 说明:用strName参数设置注册表的键值或数值。
  176. 语句:object.RegWrite strName,anyValue[,strType]
  177. strName:要写入的键值或数值。
  178. AnyValue:要写入的键或注册表数值的对应值。
  179. strType:可选。值的数据类型将留在注册表。
  180. 9.Run
  181. 说明:创建一个新的过程。执行strCommand
  182. 语句:
  183. object.Run(strCommand,[intWindowStyle],[bWaitOnReturn])
  184. StrCommand:在StrCommand参数内的环境变量会自动扩展。
  185. IntWindowStyle:可选。
  186. bWaitOnReturn:可选。如果bWaitReturn没有指定,或是为否,会在程序运行结束前就返回脚本。
  187. 如果bWaitOnReturn的值为是,用Run的方法应用程序会返回任何的错误代码。
  188. 如果bWaitReturn没有指定,或是为否,用Run的方法应用程序会返回一个0的错误代码。
  189. 10.Sendkeys
  190. 语句:SendKeys String
  191. String:必须的参数。字符串指定要传送的键值。
  192. 注意:每个键都由一个或多个字母代表。要指定一个单独额键盘字符,就使用字符本身。如:"A" "ABC"
  193. "+","^","%","~"和圆括号(),对于SendKeys有特殊意义。要指定这些字符,要用大括号{}把他们括起来。如{+}.
  194. 如果要指定象ENTER键或TAB键这种不显示,而且又有其他功能的键,请使用下面的
  195. Backspace {BACKSPACE},{BS},or {BKSP}
  196. Break {BREAK}
  197. Caps Lock {CAPSLOCK}
  198. Del or Delete {DELETE} or {DEL}
  199. 要指定一些结合Shift ,Ctrl,Alt一起按的键,请使用下面的代码。
  200. Shift +
  201. Ctrl ^
  202. Alt %
  203. 如:shift和E ,C三个一起按 用 "+(EC)" 指定按住Shift和E,再加C,用"+EC"
  204. 指定重复键,使用{键 数字}的形式。必须在键和数字之间加空格键。如:{LEFT 42}代表按方向左键42次。{H 10}表示按H 10 次
  205. 五:WshShortcut对象的方法
  206. 1.Save
  207. 把快捷方式保存到指定位置
  208. 语句:object.Save
复制代码

作者: zyz0304360    时间: 2008-2-20 20:12

多谢楼主
很棒的帖子
收藏了
作者: tornodo    时间: 2008-3-15 21:12

严重支持楼主。仔细研究下。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2