1.执行已下载的virtualbox的安装exe文件,使用pywinauto模拟点击Windows安装的对应控件

1.1.启动exe文件

start *.exe

1.2.使用pywinauto(也适用于桌面端控件的自动化)

1.2.1.pywinauto安装

pip3 install pywinauto

1.2.2.实例

from pywinauto.application import Application
import os, time VIRTUALBOX_PATH = os.path.join(os.path.dirname(__file__), "VirtualBox-6.1.32-149290-Win.exe")
WINDOWS_SETTING_TITLE = "Oracle VM VirtualBox 6.1.32 设置"
WINDOWS_INSTALL_TITLE = "Oracle VM VirtualBox 6.1.32 "
# 防止出现请求的操作需要提升的权限问题
os.environ.update({"__COMPAT_LAYER":"RUnAsInvoker"})
app = Application(backend="win32").start(VIRTUALBOX_PATH)
app.window(title=WINDOWS_SETTING_TITLE).wait('visible')
print(app)
time.sleep(3)
print(app.window(title=WINDOWS_SETTING_TITLE))
# 输出当前页面的所有属性(一般可以通过这个来获取按钮及文本)
print(app.window(title=WINDOWS_SETTING_TITLE).print_control_identifiers())
# 点击下一步
print(app.window(title=WINDOWS_SETTING_TITLE).wrapper_object())
app.window(title=WINDOWS_SETTING_TITLE).child_window(title="下一步(&N) >", class_name="Button").click()
time.sleep(3)
app.window(title=WINDOWS_SETTING_TITLE).child_window(title="下一步(&N) >", class_name="Button").click()
time.sleep(3)
app.window(title=WINDOWS_SETTING_TITLE).child_window(title="下一步(&N) >", class_name="Button").click()
time.sleep(3)
print(app.window(title=WINDOWS_INSTALL_TITLE).print_control_identifiers())
app.window(title=WINDOWS_INSTALL_TITLE).child_window(title="是(&Y)", class_name="Button").click()
print(app.window(title=WINDOWS_SETTING_TITLE).print_control_identifiers())
app.window(title=WINDOWS_SETTING_TITLE).child_window(title="安装(&I)", class_name="Button").click()

2.使用Chocolatey包管理工具,需要首先安装Chocolatey,需要在cmd管理员权限下执行命令才可执行,且安装时需要联网下载virtualbox,耗时较长, choco install virtualbox

2.1.安装choco包管理工具(需要管理员权限)

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

2.2.安装软件

choco install virtualbox -y

3.一般Windows会自带子系统,需要手动开启,需要到Windows商店手动下载对应ubuntu系统(不建议)

4.使用微软自带的msi命令执行安装程序(需要管理员权限)

4.1.解压exe出现msi文件

*.exe /extract:目录
可不加目录,默认会到用户/

4.2.无界面默认安装

msiexec /i VirtualBox-6.1.32-r149290.msi /qn /l*v msiexec_log.txt ALLUSERS=1

5. 使用win10、win11的winget直接安装程序:

5.1:直接安装(需联网,不需要管理员权限)

winget install VirtualBox --accept-package-agreements --accept-source-agreements

5.2:使用导入mainfest文件安装本地文件(需要管理员权限)

需预先执行winget settings --enable LocalManifestFiles打开权限
winget install -m

Windows快捷安装应用方法(此处以Virtualbox为例)的更多相关文章

  1. GitHub for Windows离线安装的方法

    这几天一直在尝试安装GitHub for windows ,安装程序是从https://windows.github.com/ 下载到的OneClick 部署程序,版本号为2.11.0.5.可能是因为 ...

  2. windows下安装bpython方法 (新)

    刚开始学习python的时候使用的ipython解释器,挺好用的,后来发现bpython功能更强大,linux系统中安装基本没啥问题,不过在windows下安装倒是不容易啊.使用google搜了一下, ...

  3. [GitHub]GitHub for Windows离线安装的方法

    这几天一直在尝试安装GitHub for windows ,安装程序是从https://windows.github.com/ 下载到的OneClick 部署程序,版本号为2.11.0.5.可能是因为 ...

  4. Windows 10安装pip方法

    pip是一款非常方便的python包管理工具,本文主要介绍在windows 10下安装pip方法. 1. 下载pip 地址:https://pypi.python.org/pypi/pip#downl ...

  5. windows下安装composer方法

    composer是一个新崛起的PHP的依赖管理工具.官方安装方法见: 此处假定: (1)php安装目录为C:/php5.4 (2)php 安装目录已经加入PATH环境变量(这样就可以在命令行直接输入“ ...

  6. Windows下安装Scrapy方法及常见安装问题总结——Scrapy安装教程

    这几天,很多朋友在群里问Scrapy安装的问题,其实问题方面都差不多,今天小编给大家整理一下Scrapy的安装教程,希望日后其他的小伙伴在安装的时候不再六神无主,具体的教程如下. Scrapy是Pyt ...

  7. windows 下安装ElasticSearch方法

    1.https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html 在此页面下载安装JDK1 ...

  8. Windows下安装xampp的PHP扩展(redis为例)

    (1)PHP的windowns扩展下载网址:https://windows.php.net/downloads/pecl/releases/ (2)Ctrl+f查询你要下载的扩展名 注意:扩展的版本要 ...

  9. Composer - windows下安装方法

    在windows下安装的方法 方法一:使用安装程序 这是将 Composer 安装在你机器上的最简单的方法. 下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ...

随机推荐

  1. Git 不识别文件名字母大小写变化

    问题 今天为一个项目撰写持续构建计划,撰写 Jenkinsfile 之后进行构建时报错: [2022-05-23 16:54:21] unable to prepare context: unable ...

  2. Sass预处理器

    CSS预处理器 less,sass和stylus sass:较早,缩进风格 scss:完全兼容css3,使用大括号 编写css的编程语言,引入变量,函数,重复代码等功能,如果编译成css文件 Sass ...

  3. Java开发学习(一)----初识Spring及其核心概念

    一. Spring系统架构 1.1 系统架构图 Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基. Spring Framework的发展也经历了很多版本的变更,每 ...

  4. 给小白的 PostgreSQL 容器化部署教程(上)

    作者:王志斌 编辑:钟华龙 本文来自社区小伙伴 王志斌 的投稿.从小白的角度,带你一步步实现将 RadonDB PostgreSQL 集群部署到 Kubernetes 上.文章分为上下两部分,第一部分 ...

  5. mybatis中返回一个List字段

    目的:在一个查询接口里面,返回一个人的信息,以及这个人所携带的东西的信息,返回效果如下: { "msg": { "listMain": [ { "id ...

  6. MySQL - 并发事务出现的问题

    1. 脏读 含义:在事务过程中,读到了其它事务为提交的数据. 解决方法:将数据库事务提升到读已提交或以上的隔离级别. 2. 不可重复读 含义:一次事务中,两次读操作中,读出来的数据内容不一致. 解决方 ...

  7. Spring Ioc源码分析系列--自动注入循环依赖的处理

    Spring Ioc源码分析系列--自动注入循环依赖的处理 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到Spring创建bean出现循环依赖的时候并没有深入去分 ...

  8. 技术分享 | Appium环境安装与架构介绍

    原文链接 Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用 不应该让移动端自动化测试限定在某种语言或者某个具体的框架 不要为了移动端的自动化测试而重新造轮子 移动端自 ...

  9. 使用 DartPad 制作代码实践教程

    DartPad 是一个开源的.在浏览器中体验和运行 Dart 编程语言的线上编辑器,目标是为了帮助开发者更好地了解 Dart 编程语言以及 Flutter 应用开发. DartPad 项目起始于 20 ...

  10. Canal实现MySQL协议

    目录 代码流程 执行dump前 执行dump 在学习Canal的时候很好奇Canal是如何模拟成MySql Slave来接收数据的 MySql Slave会向主库发送dump协议来接收bin-log数 ...