们好,这里是Seek思科,为你寻找苹果最新资讯、苹果隐藏技巧、苹果良心APP以及苹果优质配件。如果你需要这些,不妨点个关注。
此前关于iPhone上的快捷指令的内容讲过不少,比如通过快捷指令查询商品的历史价格、打开快捷支付、又或者是利用自动化创建个性化的起床闹钟、充电音效。又或者是通过URL Scheme跳转支付宝中蚂蚁森林快捷功能等等。
事实上,真正会去体验或者使用这些功能的用户可能并不多。现在对大部分人来说,每天基本都会都要打开健康码以及乘车码等小程序。
并且,每次打开这些健康码都需要一系列的操作。以广东省的健康码“粤康码”为例,它首先打开微信,进入“粤省事”小程序,再点击健康码。这一麻烦的步骤有时候一天需要重复好几遍。
而今天要介绍的就是,如何一键到达健康码的界面,省去中间繁杂的步骤。该方法不仅仅适用于全国不同地区的健康码,也适合健康码之外的其他微信小程序(包括乘车码)和支付宝小程序。
先来看看运行效果。
不仅方便快捷,设置方法比较简单,只需要新建快捷指令,添加操作,搜索并选择“打开URL”,粘贴事先准备好的URL链接,最后为快捷指令命名即可。
当然,你也可以使用直接复制别人已经创建好的健康码(已整理)的快捷指令链接,在Safari浏览器中打开添加。
最后在桌面(主屏幕)添加快捷指令的小组件即可。
那问题来了,那一串特定的URL链接代表着什么,如何获取?又或者如何创建自己所在城市的健康码快捷指令呢?不妨接着往下看。(结尾有直接获取的方式)
从上述快捷指令的设置可以知道,设置该快捷指令的关键在于那一串链接或者说代码。
以广东省健康码为例,它的URL Scheme如下:
其主要内容总共分为三部分,第一个参数为app“wx76fc280041c16519”,第二个参数为userName“gh_1ac06b5a8f4e”,第三个参数为Path“operation_plus/pages/yiqing/daka/user/index/index.html”。
这三段都分别代表着不同的含义,第一段可以理解为一个参数,就是用来区别不同的 App 跳到微信小程序的标识 ID,它并不是固定的,遇到失效时需要替换。在实际体验过时,可能会出现“小程序跳转次数用完”的提示,碰到这种情况需要更换为其他的app ID。
第二个参数为所使用小程序的帐号原始ID,在进入某一小程序后,点击右上角的三个点,再进入小程序主页,点击查看“更多资料”,在基础信息下就可以看到小程序的帐号原始ID。
至于最后一个参数,需要一定的门槛。需要前往微信公众平台扫码登录,注册一个小程序。注册好之后,点击右上角的“工具>生成小程序码”。
输入要查找的小程序名,例如“粤省事”。在输入完成后,点击右边的搜索,待出现结果后,点击“下一步”。
点击“获取更多页面路径”,输入自己的微信号,再点击“开启”。如果开启成功,顶部会出现“开启入口成功”的提醒。
在完成上述操作后,重新回到需要小程序显示的最终页面(比如显示健康码的页面),点击右上角三个点,选择最后一个复制页面路径,之后再将三部分组合在一起即可。
该方法适用于微信中的其他小程序以及其二级页面。通过这一方法同样可以获取微信乘车码的URL,甚至是热搜的URL等。
对于一些习惯使用支付宝的用户,同样也可以使用快捷指令的方法一键打开健康码,并且不有微信小程序中的跳转次数上限的问题。
以上海的随申码为例,在支付宝中可以直接复制分享的小程序链接。
但是同时也面临着一个问题,就是其自动生成的链接是短链接的形式,也就意味着我们无法直接查看其链接构造。因此,可以在Safari浏览器中“粘贴并前往”,待弹出软件跳转后点击“取消”,再从顶部的地址栏中将其完整链接复制下来。
之后我们仍需通过一些网站,比如urldecode将其解析。
最后得到完整的经过解析后的链接,然而实际上我们需要的只有中间的一部分,即从"alipays://--type"这一段,包含“appid”和“Page”。
快捷指令的应用远不止如此。你可以根据自己的日常使用习惯添加蚂蚁森林、扫共享单车、查看热搜等快捷操作。甚至你还可以结合辅助触控的轻点背面更加方便地打开捷径。
国内主要省份和城市的健康码快捷指令链接已经整理。想要获取更多苹果资讯技巧,可以点个赞、点个关注。
捷键可以运用到很多地方,除了office软件、除了电脑快捷键,我们还可以将其运用到浏览器中,硬核提高效率。
Ctrl+F/Ctrl+G
网页搜索
在浏览器中,按快捷键键【Ctrl+H】,或是【Ctrl+G】,调出搜索框,即可搜索当前页面中的内容。
Ctrl+T/Ctrl+N
新建标签页
我们常常因为网页打不开,或是刷新不出来而暴躁,这时候也许可以新建页面,重新输入网址再跳转试试。【Ctrl+T】或是【Ctrl+N】可以帮助你快速新建一个标签页。
Ctrl+R
刷新网页
在网站中,我们想要刷新当前页面,可以使用F5,其实【Ctrl+R】也拥有刷新页面的功能。
Ctrl+D
tools.pdf24.org/en
Ctrl+D在Word文档中,可以调出【字体】功能页面,在浏览器中,则可以收藏网页,按【Ctrl+D】将当前页面放在收藏夹,随时取用。
Ctrl+S
tools.pdf24.org/en
我们知道Ctrl+S是保存的意思,在网页中,也是这样,你可以按快捷键【Ctrl+S】,将当前网页保存为HTML格式。
Ctrl+E
恢复刚刚删除的网页
Ctrl+E在Word文档中有居中的功能,在Excel中,可以填充单元格,而在浏览器中,则能够恢复刚刚删除的网页。
Ctrl+H
查看历史浏览记录
浏览器会默认保存你的历史浏览记录,如果误删了页面,或是找不到网站,可以按【Ctrl+H】进入历史浏览记录中查看。
Ctrl+U
查看网页源代码
很多技能中(如网页文字可编辑),都会需要你查看或是更改网页的源代码,这时候,除了右键点击,还可以用快捷键【Ctrl+U】调出当前网页的源代码页面。
Ctrl+L
编辑网址
大神一般不会采取保存或是收藏网站的方式,都会直接输入网址跳转,在浏览器中,按快捷键【Ctrl+L】就可以直接在网页的网址编辑框中修改网址了。
Ctrl+J
调出下载管理器
如果在网页中下载文件,却找不到下载文件的内容,也看不见下载进度,直接按快捷键【Ctrl+J】就可以调出浏览器的下载管理器,查看下载情况。
Ctrl+M
另存为图片
将当前页面另存为图片,这个比截图要好用,直接将整个页面保存成图片格式。
Ctrl+K
复制当前页面
如果你想要在浏览器中另起一个同样的页面,按快捷键【Ctrl+K】就可以copy当前页面到新标签中了。
好了,今天的浏览器快捷键就是这样,其实大部分快捷命令都是相通的,我们在很多软件中可以用快捷键搞定,这样可以更好的提高效率。
用 Windows 自带的 MSAA 发现浏览器窗口,自动执行 JavaScript 很简单!
aardio 代码示例:
import winex;
import winex.accObject;
import winex.key;
//遍历浏览器窗口(兼容 Chrome,Edge 等)
for hwnd,title in winex.each("Chrome_WidgetWin_1") {
//获取 MSAA 接口对象
var accObject=winex.accObject.fromWindow(hwnd);
//查找文本框
var edit=accObject.find(
role=0x2A;
name="<Address and search bar>|<地址和搜索栏>";
)
if(edit){
//获取浏览器地址栏内容
var url=edit.value();
//修改浏览器地址栏内容
edit.setValue("javascript:alert(document.location.href)")
edit.takeFocus();
//后台发送按键消息
winex.key.click(hwnd,"ENTER");
thread.delay(1000);
}
}
运行一下看看效果:
所有 Windows 系统都自带 MSAA,接口简单,易于使用,生成的 EXE 程序体积也会很小。aardio 标准库 winex.accObject 则对 MSAA 做了进一步封装,用法就更简单了。
1、什么是窗口
「窗口」是应用程序在屏幕上创建的一个显示区域,通常用于接收并处理用户操作,并显示要输出的内容。窗口上的文本框、按钮、菜单这些也都是窗口。
我们一般将顶层独立窗口称为「窗体」,而窗体上的子窗口称为「控件」。
2、什么是窗口句柄
窗口句柄是一个用于唯一标准窗口的整数值。
其实很多系统资源,例如位图、进程、线程都有唯一标准资源的句柄。
在 aardio 中所有句柄都存为指针类型,唯有窗口句柄是普通的数值类型。
3、无句柄窗口
无句柄窗口是指该窗口上的控件没有创建子窗口,典型的例如网页上的按钮、文本框都没有窗口句柄。MSAA 可用于操作无句柄窗口。
请在 aardio 中打开 『工具 > 探测器 > 窗口探测器』:
拖动『窗口探测器』左下角的十字图标到目标窗口上,就会显示窗口信息。
使用窗口探测器我们可以发现 Chrome, Edge 等浏览器的网页窗口类名都是 "Chrome_WidgetWin_1", 所以我们可以用下面的 aadio 代码获取所有打开的浏览器窗口:
import winex;
for hwnd,title in winex.each("Chrome_WidgetWin_1") {
}
aardio 中 winex 名字空间的所有库、函数都是用于操作外部程序窗口的。
winex.each() 用于遍历所有符合条件的窗口, winex.each() 的第一个参数可以指定窗口类名,这个类名支持模式匹配语法( 类正则表达式,但更简单,用法请参考语法文档 )。
自窗口句柄获取 MSAA 对象,代码很简单:
import winex;
import winex.accObject;
//遍历浏览器窗口(兼容 Chrome,Edge 等)
for hwnd,title in winex.each("Chrome_WidgetWin_1") {
//获取 MSAA 接口对象
var accObject=winex.accObject.fromWindow(hwnd);
}
请在 aardio 中打开 winex.accObject 的文档或源码,搜索“ACC对象浏览工具” 并下载该工具( inspect.exe )。
运行 inspect.exe ,点选下图的『 Watch Cursor 』图标:
也就是允许探测鼠标指向的窗口。
然后将鼠标移向浏览器的地址栏,Inspect 找到了地址栏所在的 ACC 对象,并显示了一堆信息,我们重点关注这几行:
Name: "Address and search bar"
Role: editable text (0x2A)
Name 是 ACC 对象的名称。
Role 是 ACC 对象的角色,其实就是控件类型。
根据上面的信息,我们修改代码获取浏览器地址栏:
import winex;
import winex.accObject;
import console;
//遍历浏览器窗口(兼容 Chrome,Edge 等)
for hwnd,title in winex.each("Chrome_WidgetWin_1") {
//获取 MSAA 接口对象
var accObject=winex.accObject.fromWindow(hwnd);
//查找地址栏
var edit=accObject.find(
role=0x2A;
name="<Address and search bar>|<地址和搜索栏>";
)
//显示地址栏的内容
if(edit) console.log( edit.value() )
}
console.pause();
在 aardio 中运行上面的代码,我们干净利索地拿到了浏览器地址栏的网址。
拿到一个 accObject 对象以后,可以调用 accObject.find() 函数继续查找符合条件的子节点。而查找参数就是我们用 Inspect.exe 探测到的参数。
查找参数中,role, state 可以是文本,也可以是数值,一般建议用数值( 速度更快 )。
上面的 name 参数用到了模式匹配:
name="<Address and search bar>|<地址和搜索栏>";
这个模式表达式中的 | 线是 “或” 的意思,而 < > 括号用于包含子串。如果目标 ACC 对象的 name 包含 "Address and search bar" 或者 "地址和搜索栏" 都符合条件。
aardio 标准库 key,mouse 用于对前台窗口模拟按键鼠标。
例如:
key.press("ENTER")
作用就是模拟按下回车键。
如果我们改用 winex.key, winex.mouse 就可以直接向后台窗口发送按键或鼠标消息。这样的好处是不会干扰用户操作。
例如向浏览器窗口发送回车键消息:
import winex;
import winex.key;
//遍历浏览器窗口(兼容 Chrome,Edge 等)
for hwnd,title in winex.each("Chrome_WidgetWin_1") {
//后台发送按键消息
winex.key.click(hwnd,"ENTER");
thread.delay(1000);
}
操作按键的函数都需要用到键名。
我们还可以直接运行 aardio 『 工具 > 鼠标按键 > 按键指令生成器』
在『按键指令生成器』窗口内我们任意按键,就可以显示对应的键名了。
有时候先进也是一种负担,飞机比自行车先进,这不等于任何时候都要用飞机替代自行车。
当然,在 aardio 中调用 UIA 也是很简单的,示例( 可独立运行 ):
import process;
process.executeWaitInput("notepad.exe",io.getSpecial(0x25/*_CSIDL_SYSTEM*/,"drivers\etc\HOSTS"));
//导入 .Net 类
import System.Windows.Automation;
TreeScope=::UIAutomationTypes.import("System.Windows.Automation.TreeScope");
//访问 .Net 类的静态成员
Automation=System.Windows.Automation;
AutomationElement=Automation.AutomationElement;
RootElement=AutomationElement.RootElement;
//查找记事本窗口
var condNotepadClass=Automation.PropertyCondition(AutomationElement.ClassNameProperty,"Notepad")
var notepad=RootElement.FindFirst( TreeScope.Children, condNotepadClass)
//查找记事本的编辑框
var condEditClass=Automation.PropertyCondition(AutomationElement.ClassNameProperty,"Edit");
var editBox=notepad.FindFirst( TreeScope.Descendants, condEditClass);
if(!editBox){
//Windows 11
condEditClass=Automation.PropertyCondition(AutomationElement.ClassNameProperty,"RichEditD2DPT");
editBox=notepad.FindFirst( TreeScope.Descendants, condEditClass);
}
//获取记事本内的文本
var textPattern=editBox.GetCurrentPattern(Automation.TextPattern.Pattern);
var text=textPattern.DocumentRange.GetText(50)
import win.dlg.message;
win.dlg.message().info(text + " ……")
aardio 调用 WebDriver 就更简单了,示例:
*请认真填写需求信息,我们会在24小时内与您取得联系。