我主要使用 chrome,但我也愿意使用任何允许我这样做的浏览器。
在 Windows 10 中,您可以通过将鼠标悬停在窗口上并使用滚轮来滚动任何窗口,即使该窗口当前未处于活动状态。
是否有可能以某种方式切换非活动窗口的浏览器选项卡?
老实说,我似乎记得向左/向右滚动(至少是我鼠标上的所谓功能 - 罗技鼠标)以前还可以用,但现在似乎不再如此了。
编辑:我正要问同样的问题,SU 告诉我我已经问过了。所以顶一下...
答案1
一种方法是使用 AHK 脚本ControlSend
函数将模拟的按键直接传递到您想要的窗口(这可以对非活动、最小化或隐藏的窗口执行)。然后,您可以将任何适合您的序列直接绑定到热键以方便使用。以下是 AHK 文档页面(上面有链接)的直接副本,以防页面出现故障:
控制发送[原始]
将模拟击键发送到窗口或控件。ControlSend
[, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]
ControlSendRaw:与上述参数相同。参数
控制
可以是 ClassNN(控件的类名和实例编号)或控件的文本,两者都可以通过 Window Spy 确定。使用文本时,匹配行为由 SetTitleMatchMode 确定。如果此参数为空或省略,则将使用目标窗口的最顶层控件。如果此参数为 ahk_parent,则击键将直接发送到目标窗口而不是其控件之一(有关示例,请参阅 Automating Winamp)。
要对控件的 HWND(窗口句柄)进行操作,请将 Control 参数留空并为 WinTitle 参数指定 ahk_id %ControlHwnd%(即使 DetectHiddenWindows 处于关闭状态,这也适用于隐藏控件)。控件的 HWND 通常通过 ControlGet Hwnd、MouseGetPos 或 DllCall() 检索。按键
要发送的键序列(有关详细信息,请参阅 Send 命令)。要发送文字逗号,请将其转义(`,)。发送字符的速率由 SetKeyDelay 决定。与 Send 命令不同,鼠标点击不能通过 ControlSend 发送。为此使用 ControlClick。
窗口标题
窗口标题或其他用于标识目标窗口的标准。请参阅 WinTitle。
文言文
如果存在,此参数必须是目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示)。如果 DetectHiddenText 为 ON,则会检测到隐藏的文本元素。
排除标题
标题包含该值的窗口将不予考虑。
排除文本
文本包含该值的窗口将不予考虑。
错误处理
[v1.1.04+]: 此命令在失败时会抛出异常。有关更多信息,请参阅运行时错误。
如果出现问题,则 ErrorLevel 设置为 1,否则设置为 0。
评论
ControlSendRaw 发送 Keys 参数中的按键,而不将 {Enter} 转换为 Enter、将 ^c 转换为 Control+C 等。有关详情,请参阅 Raw 模式。将 {Raw} 或 {Text} 与 ControlSend 一起使用也是有效的。[v1.1.27+]: 文本模式可能更适合发送文本。
如果省略 Control 参数,此命令将尝试通过发送到其最顶层控件(通常是正确的控件)或窗口本身(如果没有控件)直接发送到目标窗口。如果窗口似乎没有任何控件,或者只是为了方便而不必担心要发送到哪个控件,这很有用。
默认情况下,修饰键(Control、Alt、Shift 和 Win)会像 Send 命令一样发送。这允许命令提示符和其他控制台窗口正确检测大写字母、控制字符等。它还可以通过其他方式提高可靠性。
但是,在某些情况下,这些修饰键事件可能会干扰活动窗口,尤其是当用户在 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、Send、自动化 Winamp ...