在任务栏中向左/右切换到活动窗口

时间:2015-10-02 19:47:17

标签: scripting window autohotkey

我一直在使用7+ Taskbar Tweaker一天,我被两个功能所震撼。主要是因为windows alt + tab不记忆打开窗口的顺序。我经常使用两个命令。 101 - 切换到位于任务栏上活动窗口左侧的窗口,然后切换到位于任务栏上活动窗口右侧的窗口。

因此,当我进行一些编程并且必须快速切换窗口时,我只为这两个操作分配快捷方式。它使窗户之间的切换变得如此简单。一个关键是将焦点向左移动而另一个关键是向右移动。

是否可以在autohotkeys中执行此操作?它真是太棒了。因为实际上我并不需要整个程序,只有这个功能。我在网上看到了一些代码但它在win 7/64中没有工作。基本上我需要一个脚本,它将指定热键,用于将焦点从任务栏上的活动窗口移动到一个左侧或一个右侧。此外,当它用完左/右窗口时,它应该回到开始窗口(就像普通的alt标签一样。)

2 个答案:

答案 0 :(得分:0)

噢......是的,我想我写了一个脚本可以在几年前做到这一点,但我不确定我是怎么做到的。
这里真正的问题是在塔架中找到窗户的顺序 但我可以告诉你,它没有正式的api,而且从我使用注册表监控软件可以看出,订单没有存储在注册表中。

现在,这是我唯一想到的事情:

F1::WinActivateByTbIndex(4) ;activate the fourth window in the task bar with F1
F2::WinActivateByTbIndex(2) ;activate the second window in the task bar with F2


WinActivateByTbIndex(index) {
    WinActivate, ahk_class Shell_TrayWnd
    ControlSend, MSTaskListWClass1, % "{Tab}{Right " index-1 "}", ahk_class Shell_TrayWnd
    Send, {Up}{Enter}
}  

但如果你有一个任务栏图标后面有多个窗口,那么你只需启用第一个,这可能不太有用..

Windows还提供热键Win + 1到Win + 0 Win + 2 ... upt到Win + 0作为启用窗口1-10的快捷方式,但它有2个限制:它只适用于第一个10个窗口,你总是激活堆栈的第一个窗口(就像我的热键)。

答案 1 :(得分:0)

其实我正在阅读很多内容,而Windows中原生的alt + escalt + shift + esc正在做我需要的功能相当不错。它通过打开的窗户循环,以便它们是开放的。唯一的缺点是,如果你有最小化的窗口,它将选择它们,它们将保持最小化,它不会把它们放在前面。我被这个绊了直到我搞清楚了。一个快捷方式是向左和向右移动,您只需按顺序打开窗口即可循环使用。

所以.. alt + escalt + shift + esc正在发挥作用,但是很难按下,特别是如果你想要的话快速做到这一点。随之而来的是autohotkey,我测试了这段代码并且它完美无瑕地工作。

 !w::
   sendInput {alt down}{esc}{alt up}
  return

 !e::
   sendInput {alt down}{shift down}{esc}{alt up}{shift up}
  return