加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

使用vbs脚本实现自动化安装GUI程序

发布时间:2022-12-08 11:24:22 所属栏目:Windows 来源:
导读:  使用vbs脚本实现自动化安装GUI程序

  目录

  0x00、需求、场景是什么?

  1、缘由

  2、需求

  0x01、方案

  1、使用脚本精灵、按键精灵

  2、借助WinSpy++

  
  使用vbs脚本实现自动化安装GUI程序
 
  目录
 
  0x00、需求、场景是什么?
 
  1、缘由
 
  2、需求
 
  0x01、方案
 
  1、使用脚本精灵、按键精灵
 
  2、借助WinSpy++
 
  3、使用C++代码操作
 
  4、使用VBS脚本
 
  0x02、VBS是什么?
 
  1、Visual Basic
 
  2、Basic语言
 
  3、Visual Basic Script
 
  0x03、Wscript.shell是什么?
 
  0x04、VBS代码(以npcap.exe为例)
 
  0x05、自定义模式安装
 
  0x06、例子文件目录
 
  0x07、效果动图
 
  0x08、参考文献
 
  0x00、需求、场景是什么?1、缘由
 
  前段时间博主写了一篇关于网卡驱动的笔记,有小伙伴留言相关依赖的安装问题。恰好博主也想试试看,于是有了现在的解决方案。
 
  windows下无npcap驱动导致golang获取网卡失败问题_kjcxmx的博客-CSDN博客
 
  2、需求
 
  windows下某些软件的安装是提供自定义安装的GUI图形界面模式,但是某些场景下并不想手动干预。就是想要所谓的静默安装方式,但某些软件一定条件下不支持静默安装模式。
 
  0x01、方案
 
  总体想法是使用脚本自动化控制,来模拟人机交互的过程来实现一键安装。
 
  1、使用脚本精灵、按键精灵
 
  网上好多介绍,主要是提供模拟点击鼠标时间、重放按键事件,通过记录点阵坐标来实现点击操作。
 
  不过由于是通过坐标实现的,弊端也很明显,不适合移植到其他设备进行操作。只要分辨率稍微不一致就可能导致自动化执行失败。
 
  另外某些款还需要安装驱动,这就会产生”鸡生蛋,蛋生鸡“的问题。
 
  2、借助WinSpy++
 
  使用WinSpy++获取窗体对象,使用默认的安装策略一路回车,实现默认一键安装。
 
  WinSpy++来自于VC++,是一款可以获取程序各种句柄的工具,比如窗体的标题、按钮、输入框、进度条等等句柄。可以对获取到的句柄发消息,实现后台挂机。WinSpy涉及了不少windows api提供调用,这里暂不细说。
 
  详情可查看网友的这篇博客,讲的比较详细。 Spy++的使用方法_smeller的专栏-CSDN博客_spy++
 
  3、使用C++代码操作
 
  C++比较适合,一些程序的安装过程都是使用C++来操作。主要是调用 kernel32 句柄来获取程序PID、句柄, 过程类似,都是模拟交互过程,最后打包成exe可执行文件。
 
  4、使用VBS脚本
 
  通过VBS脚本创建可供在windows上运行的程序调用的对象,使用WScript.Shell对象进行SendKeys()操作,可以实现默认策略一键安装,也可进行自定义策略自动安装。
 
  着重介绍此方法,不复杂,易用性好。
 
  0x02、VBS是什么?
 
  说到VBS就不得不提VB,什么是VB呢?
 
  1、Visual Basic
 
  VB是Visual Basic的简称,是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言,是一种可用于微软自家产品开发的语言。
 
  2、Basic语言
 
  而VB呢又源自于BASIC编程语言,是不是有种套娃的感觉,其实也没有了windows脚本,只是技术的发展就是这样一步一步的过程,从原有的技术层面上建立新的技术,层层迭代。
 
  3、Visual Basic Script
 
  言归正传,VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版),其语言类似Visual Basic(VB),用于高效生成类型安全和面向对象的应用程序,程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
 
  VBS是默认的ASP语言,可以用在Windows脚本编写和网页编码中。尽管它的语法类似于VB,但是它却是一种完全不同的语言。VBS 不使用 VB运行库运行而是由Windows脚本主机解释执行。
 
  0x03、Wscript.shell是什么?
 
  Wscript.shell是Wshshell的ProID Wshshell是一个对象,存放在windows系统中的wshom.ocx文件中,可供在windows上运行的程序调用,他可对windows的外壳程序进行访问。
 
  对象(object)是一些相关变量和方法的软件集或者说库。当你需要这个对象里面的变量、方法、功能的时候,你就可以使用相关语言(代码)来调用。
 
  ProID 是程序员给某个CLSID指定的一个别名。组成如.. CLSID 是windows系统对于不同的应用程序、文件类型、OLE对象、特殊文件夹以及各种系统组件分配的一个唯一表示它的代码,为Class ID的缩写。
 
  通过代码
 
  Set Obj = createobject("WScript.Shell")
  得到对象Obj,即Wshshell是一个对象。
 
  0x04、VBS代码(以npcap.exe为例)
 
  1.首先创建Wscript.Shell对象,调用对象的Run()方法运行npcap程序。
 
  2.考虑重装的情况,输入Y确定重装,如图。
 
  windows脚本执行cmd脚本_windows shell脚本实例_windows脚本
 
  3.一路回车操作,最后安装完成。
 
  中间为了实现更好的效果,使用延时来控制回车按键,代码如下。
 
  ' D:\MyGit\vbs\demo.vbs
  Set objShell = CreateObject("Wscript.Shell")
  strCommandLine = "D:\MyGit\vbs\npcap-1.50.exe"
  objShell.Run(strCommandLine)
  Wscript.Sleep 1000
  objShell.SendKeys "Y"
  Wscript.Sleep 300
  objShell.SendKeys "{ENTER}"
  Wscript.Sleep 300
  objShell.SendKeys "{ENTER}"
  Wscript.Sleep 26000
  objShell.SendKeys "{ENTER}"
  Wscript.Sleep 300
  objShell.SendKeys "{ENTER}"
  0x05、自定义模式安装
 
  Wscript.Shell对象提供了SendKeys()函数,可以通过键盘操作来实现自定义,从而避免了通过获取坐标实现模拟操作,提高了准确性。
 
  比如使用[TAB]键实现选择功能,[ENTER]按键实现确定功能,[左、右、上、下]分别对应"{LEFT}"、"{RIGHT}"、"{UP}"、"{DOWN}"
 
  其他的, Shift -->"+"、alt-->"%"、ctrl-->"^"
 
  0x06、例子文件目录
 
  由于需要管理员权限运行,避免同意管理员权限运行弹窗,使用bat批处理包一层,右键管理员运行bat文件,实现一键运行。
 
  bat代码如下
 
  :: D:\MyGit\vbs\run.bat
  @echo off
  @title install npcap program
  @start D:\MyGit\vbs\demo.vbs
  @echo.
  @echo installing...
  @echo please don't touch it.
  @timeout /T 30
  exit
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!