們好,這里是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小時內與您取得聯系。