我主要使用 Chrome,但我願意使用任何允許我這樣做的瀏覽器。
在 Windows 10 中,您可以透過將滑鼠懸停在上方並使用滾輪來滾動任何窗口,即使該窗口目前未處於活動狀態。
是否可以以某種方式切換非活動視窗的瀏覽器標籤?
說實話,我似乎記得向左/向右滾動(至少是我的滑鼠上所謂的功能 - 羅技的一個)不久前工作過,但現在似乎不再是這樣了。
編輯:正要問同樣的問題,SU告訴我我已經這麼做了。所以撞...
答案1
一種方法是透過 AHK 腳本使用ControlSend
函數將模擬擊鍵直接傳遞到您想要的視窗(這可以對非活動、最小化或隱藏的視窗執行)。然後,為了方便起見,您可以將任何適合您的序列直接綁定到熱鍵。這是 AHK 文件頁面(上面連結)的直接副本,以防頁面出現故障:
控制發送[原始]
將類比擊鍵傳送到視窗或控制項。
ControlSend [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]
ControlSendRaw:與上方相同的參數。參數
控制
可以是 ClassNN(控制項的類別名稱和實例號碼)或控制項的文本,兩者都可以透過 Window Spy 來確定。使用文字時,匹配行為由 SetTitleMatchMode 決定。如果此參數為空或省略,則將使用目標視窗最頂層的控制項。如果此參數為 ahk_parent,則按鍵將直接傳送至目標視窗而不是其控制項之一(有關範例,請參閱自動化 Winamp)。
若要對控制項的 HWND(視窗句柄)進行操作,請將 Control 參數留空,並為 WinTitle 參數指定 ahk_id %ControlHwnd%(即使 DetectHiddenWindows 為 Off,這也適用於隱藏控制項)。控制項的 HWND 通常透過 ControlGet Hwnd、MouseGetPos 或 DllCall() 檢索。按鍵
要發送的按鍵序列(有關詳細信息,請參閱發送命令)。若要傳送原義逗號,請將其轉義 (`,)。發送字元的速率由 SetKeyDelay 決定。與 Send 指令不同,ControlSend 無法傳送滑鼠點擊。為此,請使用 ControlClick。
勝利標題
視窗標題或標識目標視窗的其他標準。請參閱WinTitle。
文文
如果存在,此參數必須是來自目標視窗的單一文字元素的子字串(如包含的 Window Spy 公用程式所顯示的)。如果 DetectHiddenText 為 ON,則會偵測到隱藏文字元素。
排除標題
標題包含此值的視窗將不被考慮。
排除文本
文字包含該值的視窗將不被考慮。
錯誤處理
[v1.1.04+]:此指令能夠在失敗時引發異常。有關詳細信息,請參閱運行時錯誤。
如果出現問題,則 ErrorLevel 設定為 1,否則設定為 0。
評論
ControlSendRaw 發送 Keys 參數中的擊鍵,而不將 {Enter} 轉換為 Enter,將 ^c 轉換為 Control+C 等。將 {Raw} 或 {Text} 與 ControlSend 一起使用也是有效的。 [v1.1.27+]:文字模式對於發送文字可能更可靠。
如果省略 Control 參數,則此命令將嘗試直接發送到目標窗口,方法是發送到其最頂層的控制項(通常是正確的控制項)或視窗本身(如果沒有控制項)。如果視窗根本沒有任何控件,或者只是為了方便而不必擔心發送到哪個控件,這非常有用。
預設情況下,修飾鍵(Control、Alt、Shift 和 Win)會以通常透過「發送」命令發送的方式發送。這允許命令提示字元和其他控制台視窗正確檢測大寫字母、控製字元等。
然而,在某些情況下,這些修飾符事件可能會幹擾活動窗口,特別是如果使用者在 ControlSend 期間主動鍵入或發送 Alt 鍵(因為 Alt 啟動活動窗口的選單列)。可以透過明確傳送修飾符向上和向下事件來避免這種情況,如下例所示:
ControlSend, Edit1, {Alt down}f{Alt up}, Untitled - Notepad
上述方法還允許在工作站鎖定(受登入提示保護)時發送修飾鍵擊(Control/Alt/Shift/Win)。
在控制台視窗(例如命令提示字元)上使用 ControlSend 時,應避免使用 BlockInput。這是因為它可能會阻止大寫和修飾鍵(例如 Control)正常工作。
SetKeyDelay 的值決定了發送按鍵的速度。如果目標視窗沒有可靠地接收擊鍵,請嘗試透過 SetKeyDelay 的第二個參數增加按下持續時間,如以下範例所示:SetKeyDelay, 10, 10
SetKeyDelay, 0, 10
SetKeyDelay, -1, 0
如果目標控制項是編輯控制項(或類似控制項),則下列控制項通常比ControlSend:Control, EditPaste, This text will be inserted at the caret position., ControlName, WinTitle
ControlSetText, ControlName, This text will entirely replace any current text., WinTitle
ControlSend 通常不能操作視窗的選單列。若要解決此問題,請使用 WinMenuSelectItem。如果由於選單列的性質而無法做到這一點,您可以嘗試按照 SendMessage 教學來尋找與所需選單項目相對應的訊息。
視窗標題和文字區分大小寫。除非開啟 DetectHiddenWindows,否則不會偵測到隱藏視窗。有關的
SetKeyDelay、轉義序列(例如 `%)、Control、ControlGet、ControlGetText、ControlMove、ControlGetPos、ControlClick、ControlSetText、ControlFocus、發送、自動化 Winamp ...