【问题标题】:How to activate a window after it has lost focus?失去焦点后如何激活窗口?
【发布时间】:2014-02-06 15:49:41
【问题描述】:

所以我正在使用这款名为 Website-Watcher 的出色软件,它是 RSS 提要阅读器和网络内容跟踪器。

我已将其配置为在 Firefox 中打开外部链接,即在后台打开选项卡。

但问题是网站观察者在我点击某个链接后失去焦点,所以有没有办法打开链接,重新获得失去的焦点并发送点击以能够滚动,我找到了一个激活窗口的脚本鼠标滚动但程序的滚动功能没有恢复。

请给我一些想法!

编辑更新::: 我终于让它工作了,问题出在 Windows 8.1 管理员权限上,因为我运行 Website-Watcher 提升,我使用的脚本停止工作。

脚本在这里:

http://www.autohotkey.com/board/topic/6292-send-mouse-scrolls-to-window-under-mouse/ http://www.autohotkey.com/board/topic/99405-hoverscroll-verticalhorizontal-scroll-without-focus-scrollwheel-acceleration/?p=623967

使用这些脚本,您可以在不激活窗口的情况下执行滚动,或者如果您使用前者,您甚至可以通过鼠标滚动来激活窗口。

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    使用WinActivate

    例如,WinActivate Untitled - Notepad 将激活(将焦点带到)“无标题 - 记事本”窗口。此标题必须准确且区分大小写。

    【讨论】:

    • 如何滚动未激活的窗口?我认为我无法解决激活的问题,因为如果我要在每次失去焦点时激活该窗口,循环,这不是一个好主意,你怎么看?
    • 我不确定。我曾经使用过一个双显示器程序,可以让你滚动失焦的窗口,但它搞砸了很多事情。如果我理解正确,您希望将 Website-Watcher 设为焦点,但仍能滚动您的 Firefox 窗口?
    【解决方案2】:

    以低技术含量的方式做到这一点可能是最简单的。我不熟悉 Website-Watcher,所以我将分享一个我使用的脚本,你应该能够适应。

    我在 Chrome 中使用 Feedly 进行 RSS 阅读,在 Feedly 中点击“v”会在新标签页中打开故事。我使用我的媒体播放按钮点击“v”并将我带回 Feedly:

    Media_Play_Pause::
    send v
    sleep 50
    send {Ctrl Down}{Shift Down}{Tab}{Shift Up}{Ctrl Up}
    return
    

    所以,定义你的热键,让它触发链接在 Firefox 中打开,然后按 Alt-Tab 跳回来:

    X::
    send y
    sleep 50
    send {Alt Down}{Tab}{Alt Up}
    return
    

    显然,替换上面的“X”和“y”。

    我不关心将我的媒体播放按钮用于其他任何操作,但如果您希望热键具有上下文相关性,请使用 #IfWinActive。

    【讨论】:

    • 对不起,我的英文不太好,可能是我不清楚,问题不是firefox跳转变成前台窗口,而是website-watcher失去焦点,你必须点击它才能重新获得焦点并且能够滚动,这是我最关心的问题。我的推理是这样的:1. 失去焦点 2. 重新获得焦点 3 只需单击一下即可恢复滚动功能可以这样做吗?
    • Firefox 打开后,按 Alt-Tab 一次。 Website-Watcher 是否重新聚焦并可以滚动?我的猜测是“是的”。
    【解决方案3】:

    使用"WinGet, variableName , List, yourWindowName"(不带引号)

    然后在每个ControlSend 中使用1 调用你的变量名

    例如:

    WinGet, nexid, List, myHyperTerminal
    
    ControlSend, , {shift down}at=cmgs{shift up}=303{ENTER},  ahk_id %nexid1%
    sleep, 1000
    ControlSend, , {shift down}sms{shift up}{space}10000,  ahk_id %nexid1%
    sleep, 1000
    

    如果你想使用shift、ctrl、alt等控制键,别忘了加上"SetKeyDelay, intDelay, intPressDuration"(不带引号)

    例如脚本将列出此

    #usehook on
    SetKeyDelay, 50, 20
    WinGet, nexid, List, zz1
    
    $F6::
    
    ControlSend, , {shift down}at=cmgs{shift up}=303{ENTER},  ahk_id %nexid1%
    sleep, 1000
    ControlSend, , {shift down}sms{shift up}{space}10000,  ahk_id %nexid1%
    sleep, 1000
    
    return
    $F7::pause
    

    它将被发送到活动/非活动窗口“zz1”:

    AT+CMGS=303
    SMS 10000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 2021-08-22
      相关资源
      最近更新 更多