[AHK-56] 瀏覽器鏈接快速另存圖片

要取得瀏覽器網頁圖片時,通常的操作是:按右鍵→在右鍵功能表點擊要操作的選項:【另存影像】(Edge)或【另存圖片...】(Chrome)。

▼ Microsoft Edge右鍵功能表

今天介紹更快速操作的瀏覽器擴充和簡化操作的AutoHotkey腳本,只要按一個按鍵(腳本裡設定為倒引號)就能執行:

  1. 另存圖片(檔案)
  2. 複製圖片到剪貼簿
  3. 複製圖片鏈接網址到剪貼簿

01

同時介紹複製鏈接文字的操作方法。

1. 瀏覽器擴充

實際圖片操作是透過瀏覽器擴充Easy to Save Image As,必須先安裝並啟用。

Easy to Save Image As提供了上述三種操作,觸發方式是【設定的快捷鍵+設定的滑鼠按鈕】,按鍵與按鈕同時點擊才能觸發功能。我設定的快捷鍵如下:

  1. Save Image As: Alt+2
  2. Copy Image: Alt+3
  3. Copy Image URL: Alt+4

將擴充顯示在瀏覽器工具列上,點擊其圖示以進入設定視窗。分別設定三個功能的熱鍵(Shortcut)並指定按鈕。
按下要使用的熱鍵後,若顯示✅表示可使用此鍵 ,再點擊【Save】以儲存設定,三個功能分別要按三次【Save】。

2. AutoHotkey熱鍵簡化操作

AutoHotkey腳本裡以倒引號(`)顯示功能表,選擇要執行的項目後送出設定好的熱鍵與按鈕。


#SingleInstance Force

global MouseX, MouseY, MouseWin

Menu, MyMenu, Add, 1. Save Link As, MenuHandler
Menu, MyMenu, Add  ; Add a separator line.
Menu, MyMenu, Add, 2. Save Image As, MenuHandler
Menu, MyMenu, Add  ; Add a separator line.
Menu, MyMenu, Add, 3. Copy Image, MenuHandler
Menu, MyMenu, Add  ; Add a separator line.
Menu, MyMenu, Add, 4. Copy Image URL, MenuHandler

return  ; End of script's auto-execute section.

;; 功能表處理程式
MenuHandler:
  sItem = %A_ThisMenuItem%
  ;;MsgBox You selected %A_ThisMenuItem% from the menu %A_ThisMenu%. selected: %sItem%$
  if (sItem == "1. Save Link As") {
    MouseMove, MouseX, MouseY  ;; 游標移回圖片位置
    sleep 300
    SendInput !{LButton}
  } else if (sItem == "2. Save Image As") {
    MouseMove, MouseX, MouseY  ;; 游標移回圖片位置
    sleep 300
    SendInput {LAlt Down}{2 Down}{LButton}
    SendInput {LAlt Up}{2 Up}
  } else if (sItem == "3. Copy Image") {
    MouseMove, MouseX, MouseY  ;; 游標移回圖片位置
    SendInput {Alt Down}{3 Down}{LButton}
    sleep 300
    SendInput {Alt Up}
    SendInput {3 Up}
  } else if (sItem == "4. Copy Image URL") {
    MouseMove, MouseX, MouseY  ;; 游標移回圖片位置
    sleep 300
    SendInput {Alt Down}{4 Down}{LButton}
    SendInput {Alt Up}{4 Up}
  }
  return

;; $: 不發生recursive call, ~: 觸發按鍵仍要輸出
~$`::
  WinGetTitle, sTitle, A
  WinGetClass,sClass,A
  ;; 排除Electron的應用, 如Obsidian, VS Code等
  index1 := InStr(sTitle, "Obsidian")
  index2 := InStr(sTitle, "Visual Studio Code")
  ;MsgBox class=%sClass%, title=%sTitle%, index=%index%
  if (sClass=="Chrome_WidgetWin_1" && index1==0 && index2==0) {
    MouseGetPos, MouseX, MouseY, MouseWin  ;; 取得目前游標座標
    Menu, MyMenu, Show  ;; 顯示功能表
  }
  return

3. Alt+Click

Alt+Click等同右鍵功能表裡的【另存連結為...】。

[!TIP] 技巧💡
設定裡若取消勾選下列【下載】選項,則不會彈出存檔對話窗。

  • Chrome: 【下載每個檔案前先詢問儲存位置】
  • Edge: 【詢問我要如何處理每個下戴的項目】

4. 相關鏈接

5. 教學影片

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *