首页 > 系统相关 >教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手

教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手

时间:2024-04-16 18:26:13浏览次数:30  
标签:脚本 Windows VBScript AppleSCript WScript Sleep ENTER WshShell SendKeys

                        <div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">一、Windows 篇 &mdash;&mdash; VBScript</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">1、效果图</a></li><li><a href="#_lab2_0_1">2、VBS 简介</a></li><li><a href="#_lab2_0_2">3、代码实现</a></li><li><a href="#_lab2_0_3">4、代码详解</a></li><li><a href="#_lab2_0_4">5、其他语法</a></li><li><a href="#_lab2_0_5">6、附:VBS 特殊字符表格</a></li></ul><li><a href="#_label1">二、Mac 篇 &mdash;&mdash; AppleScript</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_6">1、效果图</a></li><li><a href="#_lab2_1_7">2、代码实现</a></li><li><a href="#_lab2_1_8">3、代码详解</a></li></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>一、Windows 篇 &mdash;&mdash; VBScript</h2>

最近发现 windows 上有一个好玩的东西,叫做 VBScript,可以用来自动执行一些操作。

1、效果图

先来看下最终效果吧!

以上就是一个简单的 VBS 脚本,运行时自动打开 Chrome 浏览器,然后自动打开了三个网页:我的博客,github,LeetCode官网。

这是笔者每天到公司启动电脑时都会开的三个网页。虽然保存了书签,每次开机也要点击七八下,一两天不觉得有什么,长期下来笔者感到非常浪费我的手指细胞!我的手指细胞是用来数钱的,可不是用来做重复工作的,这样实在是太不程序员了。程序员就应该把重复的事情交给电脑!于是笔者发现了 VBScript 这个好东西。

2、VBS 简介

从名字中的 Script 可以看出,它是一种脚本语言,所谓脚本,就是用来解放我们双手的,让我们用脚都可以编程!

WeChat Image_20190917173203.gif

——嗯,这段关于脚本的解释纯属吹水,手动狗头防止小朋友误解。

其实脚本的本意是剧本,让程序按照开发者写好的“剧本”开始它的表演。

VBS 脚本是一种解释型语言,解释型语言的意思是它运行的时候会自动给电脑解释代码的意思,也就是不用安装任何编译环境,随便咱们用什么软件写都可以,比如记事本、word、Sublime、VSCode 啥的,只要保存成 vbs 文件即可单击运行。

3、代码实现

本例代码也很简单,新建一个 vbs 文件,名字随便取,比如 robot.vbs,编辑如下:

Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
WScript.Sleep 3500
WshShell.SendKeys "https://blog.csdn.net/AlpinistWang"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1500
WshShell.SendKeys "^t"
WshShell.SendKeys "https://github.com"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1500
WshShell.SendKeys "^t"
WshShell.SendKeys "https://leetcode-cn.com"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WScript.Quit

4、代码详解

  1. 对于笔者这样的带有目的性学习的初学者,首尾两行直接记作固定格式。
  2. WshShell.Run 用来运行 exe 文件,将路径换成自己电脑中想要运行的软件即可,用 三引号 """ 的目的是明确告诉编辑器这是一个字符串,不需要转义,防止路径中有需要转义的字符导致程序出错。这里我设置成了 chrome.exe 的位置。
  3. WScript.Sleep 3500 用来设置等待时间,3500 的意思是让程序睡眠 3.5秒,后面的 WScript.Sleep 1500 同理,意思是让程序睡眠 1.5 秒。如果你的程序启动较慢,可以将等待时间设置长一点。
  4. WshShell.SendKeys 用来模拟键盘输入,引号中的内容就是输入内容。可以看到我先输入了一个网址。
  5. WshShell.SendKeys “{ENTER}” 表示输入回车,{ENTER} 是一个特殊字符,本文后面附有 VBS 特殊字符表格。这里输入网址之后输入了两个回车,原因是我这个不争气的搜狗输入法在我一启动 Chrome 的时候,它就设置成中文输入,导致第一次回车只是把英文的文字打上去了,第二次回车才能跳转到这个网站。
  6. 输入了两次回车后,我又让脚本睡眠了 1.5秒,这行代码完全是为了录制那个 gif 时好看一点,不写的话会立即打开三个网站,看不出渐次出现的感觉。删了会更快,嗯,我写完这篇文章的时候已经把它删掉了。
  7. WshShell.SendKeys “^t” 表示同时按下 Ctrl + T,^表示 Ctrl 键,也属于一个特殊字符,这里的 t 必须要小写!(咱也不知道为什么有这么蠢的语法设计,坑了我五分钟找原因)。Ctrl + T 是 Chrome 打开新的标签页快捷键,如果你的快捷键不一样,可以对照特殊字符表自行修改。

OK,VBScript 大概就是这样的了。其实 VBS 的作用并不仅限于此,它可以用来模拟打开程序,模拟键盘输入,所以可以做出很多好玩的功能。比如笔者的同事写了一个自动连接 Cisco 的脚本(每次都要手动输入密码要吐了,现在终于被解放出来了),还可以用来自动登录 QQ、微信之类的。感兴趣的朋友们可以自行探索。

对多个程序的操作可以写在同一个 vbs 文件里,只要在一个程序的自动化脚本执行结束后,再次调用 WshShell.Run 启动其他程序,就可以继续操作其他程序了。笔者现在用的脚本效果有:

  • 1.自动打开 Chrome,并打开三个常用网址
  • 2.自动打开 Typora,并输入当前日期生成标题,这是我用来每天记录工作日志的
  • 3.启动 Android Studio,笔者是一名 Android developer,这是用来工作的。

还有一些功能涉及工作内容不方便透露,总之,想想每天到公司自己要做的初始化工作一键就能完成,是不是有点小激动呢(=,=)
附上笔者现在使用的 vbs 脚本的一部分代码:

Set WshShell=WScript.CreateObject("WScript.Shell")
' 启动 Chrome,打开常用网址 
WshShell.Run """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
' 等待程序启动
WScript.Sleep 3500
WshShell.SendKeys "https://blog.csdn.net/AlpinistWang"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "^t"
WshShell.SendKeys "https://github.com"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "^t"
WshShell.SendKeys "https://leetcode-cn.com"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
' 每个程序的自动化脚本结束后最好等待一会,给脚本一点执行时间,否则输入过快可能会影响后面的程序
WScript.Sleep 3500
' 启动 Typora
WshShell.Run """D:\ware\Typora\bin\typora.exe"""
WScript.Sleep 5000
' 获取当前日期的号数
dayString = day(now)
' 如果当前日期的号数只有一位数,前面补 0,凑成两位。比如 01, 02, 03... 这样做的目的是最终保存的时候格式更好看
if len(dayString) = 1 then dayString = "0"&dayString
' 格式化日期,这里生成的日期格式类似于 2019-12-01
Currentdate = year(Now)&"-"&Month(Now)&"-"&dayString
' MarkDown 语法,输入日期大标题
WshShell.SendKeys "# "&Currentdate&"{Enter}"
' Ctrl + S 保存
WshShell.SendKeys "^s"
' 等待一秒让保存弹窗弹出来
WScript.Sleep 1000
' 不断发送 Tab 直到定位到输入地址栏
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
' 定位到地址栏后等待一秒,输入过快可能会出错
WScript.Sleep 1000
' 输入保存的地址
WshShell.SendKeys "D:\projects\github\DailyNotes"
' 等待以便输入完成
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
' 输入地址后保存弹窗会跳转到地址所在文件夹,需要一点时间。这里需要根据实际情况调整按键
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3500
' 启动 Android Studio
WshShell.Run """D:\ware\AndroidStudio\bin\studio64.exe"""

' 更多初始化功能
' ...
WScript.Quit

5、其他语法

获取当前日期:

CurrentDate = date()

默认的格式是月/日/年,也可以这样自定义格式:

CurrentDate = year(Now)&"-"&Month(Now)&"-"&day(Now)

其中,CurrentDate 是变量名,名称可以随便起,&号用来连接字符串。

用弹窗弹出字符串

msgbox "字符串"

6、附:VBS 特殊字符表格

特殊字符VBS 表示
SHIFT+
CTRL^
ALT%
退格键{BACKSPACE} 或 {BS} 或 {BKSP}
BREAK{BREAK}
Delete{Delete} 或 {DEL}
向下键{DOWN}
向上键{UP}
向左键{LEFT}
向右键{RIGHT}
END{END}
ENTER{ENTER} 或 ~
ESC{ESC}
TAB{TAB}
CAPS LOCK{CAPSLOCK}
HELP{HELP}
HOME{HOME}
Insert{Insert} 或 {INS}
NUM LOCK{NUMLOCK}
PAGE DOWN{PGDN}
PAGE UP{PGUP}
PRINT SCREEN{PRTSC}
SCROLL LOCK{SCROLLLOCK}
F1{F1}
F2{F2}
F12{F12}

二、Mac 篇 —— AppleScript

Mac 上也有类似的脚本语言,叫做 AppleScript,打开 Mac 自带的脚本编辑器即可使用。

1、效果图

先看效果图:

2、代码实现

代码很简单,打开 Mac 自带的脚本编辑器,编辑如下:

tell application "Safari"
	activate
	tell window 1
		set URL of current tab to "https://blog.csdn.net/AlpinistWang"
		set current tab to (make new tab with properties {URL:"http://www.github.com"})
		set current tab to (make new tab with properties {URL:"https://leetcode-cn.com"})
	end tell
end tell

3、代码详解

  1. AppleScript 的语法比较人性化,就像口语一样,tell application “Safari” 表示告诉应用 Safari。
  2. activate 意思是激活,也就是打开 Safari。
  3. tell window 1 意思是告诉当前窗口
  4. set URL of current tab to “xxx” 表示将当前 tab 页的 URL 设置为 “xxx” 网址
  5. set current tab to (make new tab with properties {URL:“xxx”}) 表示新建一个标签页,并将其 URL 设置为 “xxx” 网址
  6. 每一个 tell 对应一个 end tell,tell 中的内容需要保持缩进一致。

这就是 Windows 和 Mac 上各自的脚本工具,熟练运用自动化脚本,可以让电脑更加的智能!

以上就是教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手的详细内容,更多关于Windows的VBScript与Mac的AppleSCrip的资料请关注创业项目排行榜前十名http://www.piaodoo.com/其它相关文章!

                        友情连接: 

创业项目排行榜前十名

美文集

茂名一技

茂名一技

手游排行前十名

标签:脚本,Windows,VBScript,AppleSCript,WScript,Sleep,ENTER,WshShell,SendKeys
From: https://www.cnblogs.com/python1314520/p/18138881

相关文章

  • vbs脚本和windows定时任务实现qq消息表情包定时发送功能
    <h2>目标</h2>在某个时间唤醒电脑屏幕后,自动发送qq信息,并附带表情包,发送完毕后关闭电脑屏幕。整个过程不用过多的程序运行,我们借助vbs脚本和windows定时任务去实现这一功能。准备vbs代码qq信息txt文本qq文件表情包文件发送联系人的快捷方式3个windows......
  • VBScript编写Windows防止锁屏脚本程序
    <divid="navCategory"><h5class="catalogue">目录</h5><ulclass="first_class_ul"><li><ahref="#_label0">背景介绍</a></li><li><ahref="#_......
  • 在Windows操作系统中,runonce.exe是一个系统进程,用于执行在用户登录时只需执行一次的任
    在Windows操作系统中,runonce.exe是一个系统进程,用于执行在用户登录时只需执行一次的任务或命令。它主要通过注册表中的RunOnce键来实现这些任务的执行。为什么会存在runonce.exe?初始化任务:在用户登录时,有时需要执行一些初始化任务,例如设置默认值、创建用户配置等。这些......
  • 使用vbs脚本来监控windows服务器上的应用程序(不存在就启动)
    <p>这个vbs代码主要实现的功能就是运行该程序,就会在进程中出现一个wscript.exe它会每隔10s扫面一次进程中是否存在notepad.exe这个程序,不存在就启动。这个启动程序可能跟进程名不一样,好比tomcat应用,启动的是startup.bat,后台进程名为java.exe,这样就需要......
  • windows使用/服务(15)windows Server【开机启动和任务计划程序】实现服务器重启后项目自
    版权声明:本文为博客园博主「yclizq」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:windowsServer【开机启动和任务计划程序】实现服务器重启后项目自启动1.说明有些时候我们希望计算机开机后就启动一些服务或应用程序。2.开机启动使用Win+R......
  • windows远程桌面快速切换回本地桌面方法
    因为工作经常要用到远程主机,所以经常要切换来切换去,碍于比较难多申请一个屏幕专门用作远程桌面,所以想通过快捷键的方式进行快速切换,但是远程桌面全屏下面本机的快捷键和远程桌面的快捷键没办法很好的兼容,以下是探索的几种实现方式快捷键方式远程桌面全屏下面,使用ctrl+alt+......
  • windows平台vs2019编译Luabind小记
    前言写这篇文章的目的是Luabind这个库比较老旧,对于新编译器需要做一些代码上的兼容,参考资料又都有点过时,所以特写此篇,记录踩坑过程;参考资料用VS2010编译luabind如何编译luabind支持vs2010之后所有版本Lua官网LuabindRepo编译前准备准备相关前置组件基本编译依赖Des......
  • C#控制windows的“拖动时显示窗体内容”系统设置
    公司的云桌面,影响到了原生系统的“拖动时显示窗体内容”,做了个处理程序。感谢AI,现在查资料快速了许多。虽然的确有乱说的成分,但是庆幸的是大体思路没问题。usingSystem.Runtime.InteropServices;//检查当前设置booldragFullWindows=MsHelper.GetDragFullWindows();Cons......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    思维导航前言工具介绍支持系统工具源代码工具下载并安装部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推......
  • 搭建 Windows GPU 服务器需要考虑多个方面,包括硬件选择、操作系统安装、驱动程序安装
    搭建WindowsGPU服务器需要考虑多个方面,包括硬件选择、操作系统安装、驱动程序安装、软件配置等。以下是一个简单的指南,介绍了搭建WindowsGPU服务器的基本步骤:1.硬件选择选择适合您需求的硬件配置,包括GPU、CPU、内存和存储。GPU是关键的组件,应根据您的应用需求选择......