Wscript.shell 详解

Wscript.shell 详解Wscript.shellWscript.shell是Wshshell的ProIDWshshell是一个对象,存放在windows系统中的wshom.ocx文件中,可供在windows上运行的程序调用。他可对windows的外壳程序进行访问。对象(object)是一些相关变量和方法的软件集,或者说库。当你需要这个对象里面的变量,方法,功能的时候,你就可以使用相关语

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

Jetbrains全家桶1年46,售后保障稳定



Wscript.shell


Wscript.shell是Wshshell的ProID

Wshshell
是一个对象,存放在windows系统中的wshom.ocx文件
中,可供在windows上运行的程序调用。他可对windows的外壳程序进行访问。

对象(object)是一些相关变量和方法的软件集,或者说库。当你需要这个对象里面的变量,方法,功能的时候,你就可以使用相关语言(代码)来调用。

ProID
是程序员给某个CLSID指定的一个易记名字。组成如<Program>.<Componet>.<version>

CLSID
是windows系统对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配的一个唯一表示它的代码。为Class ID的缩写。

所以:代码  
Set Obj = createobject(“WScript.Shell”)
得到对象Obj,即Wshshell,是一个对象

我们首先了解下对象Wscript : Windows Script Host object model (注意,前三个缩写为Wsh )

简单的说,Wscript就是Windows脚本宿主对象模型(WSHOM) , 而
Wscript就是windows内对象存放的一个根对象(官方语言:Wscript是一个基于windows系统脚本宿主对象的根对象), 利用它可以创造两种COM对象:WshShell 与 WshNetwork .

注释1:(八卦一下,不知道现在的诸如WshEnvironment, WshCollection, WshExec等对象是不是也存放在该根对象下,依照我的理解是的,因为他们都有前缀Wsh,但他们应该不是COM组件,故不再上面列出,应该是这样吧。另需注意Wsh是Wscript对象内置的变量,故在你载入WshShell后,在没有声明的情况下不能使用Wsh作为变量,否则会出现错误)

注释2:(COM对象即the Component Object Model,组件对象模型。COM组件是遵行COM规范编写,以Win32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行二进制代码,能够满足组建对框架的所有需求简单理解COM对象就是可执行二进制代码存放的根对象(貌似我搞不懂,如果真是这样,他们为什么非要用model模型这个单词呢,为什么不用Root根或family集合这类单词呢)


其中WshNetwork对象主要用于访问局域网环境下的
资源共享,我们这里就不阐述了。

对于WshShell对象,其中的Shell是外壳的意思,应该是此对象能够调用windows的外壳程序,故取名shell,个人觉得那么Wscript.shell这个ProID堪称完美。

因代码中都用另一个对象等价于WshShell,以下用Ws替代WshShell .

功能


Ws能够实现模拟键盘,向激活窗口发送键值实现选择,谈出定时对话框,读写注册表,启动程序,创建快捷方式等等功能。

方法


AppActivate (按键精灵不支持,属vbs)             判断窗口是否被激活
CreateShortcut                                           创建并返回WshShortcut对象
ExpandEnvironmentStrings                            扩展Progress环境变量并返回结果字符串
Popup                                                        显示包含指定消息的消息窗口
RegDelete                                                  删除注册表某目录
RegRead                                                    读取注册表某目录
RegWrite                                                   编辑注册表某目录
Run                                                           启动程序
SendKeys                                                   发送字符串或一些特殊的键盘字符

Ws.AppAcitve  窗口激活经常在自动化测试中需要用到,特别是需要测试对象出现后再做的激活,往往需要一定的等待时间。如果此时使用循环结构进行判断窗口是否激活,可以节省时间。Ws提供了一个非常有用的功能(即方法,不知一个人觉得功能比方法更贴切吧)
语法:   Ws.AppActive(title)
参数title:为需要激活窗口的titile属性值,也就是标题或者ProcessID
返回值:布尔值。如果激活了返回True,未激活返回False

Ws.Popup 在弹窗内显示文本信息,即实现定时提示框的作用。
语法:i=Ws.Popup(“text” ,”int”,”title”,”nType”)
参数:text是弹窗文本内容,int是弹窗最长显示时间秒,title弹窗标题,nType是是弹窗显示按钮和图标类型的数值
返回值:用户单击以解除弹窗的按钮值
例程:YN=Ws.Popup(“你去过香格里拉吗“,“20”,“经历”,”2”)

Ws.Run  启动windows自带的软件。如记事本  
例程:Ws.Run  “Notepad”


功能:运行记事本

Ws.SendKeys 主要用在对象无法识别时,又要在此对象内输入字符串,即可用此法。又或需要用快捷键时,也可用此法。
语法:Ws.sendkeys  string[,wait]
参数: string为指定要发送的字符串或特殊字符。wait可选,指定等待的方式。


例程:Ws.sendkeys “我去过才怪”

属性


Ws.CurrentDirectory    返回或改变该当前目录
Ws.Environment         返回WshEnvironment对象
Ws.SpecialFolders        

使用WshSpecialFolders对象对windows shell文件夹进行访问。      

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/215929.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java datagramsocket,Java DatagramSocket和DatagramPacket[通俗易懂]

    java datagramsocket,Java DatagramSocket和DatagramPacket[通俗易懂]JavaDatagramSocket和DatagramPacket1JavaDatagramSocket和DatagramPacketJavaDatagramSocket和DatagramPacket类用于无连接Socket编程。2JavaDatagramSocket类JavaDatagramSocket类表示用于发送和接收数据报包的无连接Socket。DatagramSocket基…

  • 渗透测试流程包括_渗透测试包含哪些内容

    渗透测试流程包括_渗透测试包含哪些内容目录渗透测试步骤 步骤一:明确目标 步骤二:信息收集 步骤三:漏洞探索 步骤四:漏洞验证 步骤五:信息分析 步骤六:获取所需 步骤七:信息整理 步骤八:形成报告 #流程总结 面试补充说明渗透测试步骤渗透测试与入侵的区别:渗透测试:出于保护的目的,更全面的找出目标的安全隐患。入侵:不择手段的窃取或取得目标的最大权限并予以控制。(是具有破坏性的)步骤一:明确目标1、确定范围:规划测试目标的范围,以至于不会出现越界的情况。2、确定规则

    2022年10月31日
  • marquee滚动方向_marquee无缝滚动

    marquee滚动方向_marquee无缝滚动首先让我们认识这个标签,它是成对出现的标签,首标签和尾标签之间的内容就是滚动内容。标签的属性主要有behavior、bgcolor、direction、width、height、hspace、vspace、loop、scrollamount、scrolldelay等,它们都是可选的。behavior属性behavior属性的参数值为alternate、scroll、slide中的一

    2022年10月29日
  • redisson和jedis区别_java调用redis集群

    redisson和jedis区别_java调用redis集群Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和Zset(有序集合)。 redis与spring的整合一般分为spring-data-redis整合和jedis整合,先看看两者的区别1、引用的依赖不同:spring-data-redis使用的依赖如下:&lt;depen…

  • linux查看mysql用户权限_教您如何查看MySQL用户权限

    linux查看mysql用户权限_教您如何查看MySQL用户权限教您如何查看MySQL用户权限如果需要查看MySQL用户权限,应该如何实现呢?下面就为您介绍查看MySQL用户权限的方法,并对授予MySQL用户权限的语句进行介绍,供您参考。查看MySQL用户权限:showgrantsfor你的用户比如:showgrantsforroot@’localhost’;Grant用法GRANTUSAGEON*.*TO’discuz’@’local…

  • RxJava(七) 使用 debounce 操作符优化 App 搜索功能[通俗易懂]

    RxJava(七) 使用 debounce 操作符优化 App 搜索功能[通俗易懂]RxJava系列文章目录导读:一、RxJavacreate操作符的用法和源码分析二、RxJavamap操作符用法详解三、RxJavaflatMap操作符用法详解四、RxJavaconcatMap操作符用法详解五、RxJavaonErrorResumeNext操作符实现app与服务器间token机制六、RxJavaretryWhen操作符…

发表回复

您的电子邮箱地址不会被公开。

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