有没有这种可能:对窗口进行编队,随时调让其置顶或激活?

最近为了更方便的操作多窗口多文件,试用了不少方法和软件,比如自动整理窗口大小的,通过快捷键调整当前窗口透明度并且可让鼠标穿透控制下层的,可一旦想要控制的窗口超过4个,就非常麻烦,而且各种快捷键一旦起冲突就得改,改来改去自己都记不住了。

突然想到即时战略游戏里面可以对单位进行编队,编队后按1、2、3数字就能够快速选中想要的目标,于是在想能否对窗口进行编队,这样的好处感觉非常多:
1.通过快捷键可方便的在复数窗口之间快速切换是否置顶。
2.即编即用。编队可随时进行重编,方便任意组合想要的窗口,无论是视频、图片、网页、文件等等想要什么都可以。窗口关闭后可自动解除编队,一次性使用,就像是游戏中单位被消灭了一样,创建新的需要重编。
3.可以把多个窗口,编为一队,一键置顶并排列。排列可重叠排列也可网格排列。
4.除了置顶,还可以加上焦点激活,配合其他软件的快捷键可实现各种复杂操作。

大概想法就是这样,不知道有没有什么软件能够实现这种效果?有没有大神能提供点思路?quicker的组合动作能否实现?

窗口绑定 - 动作信息 - Quicker (getquicker.net)

我猜把这个改巴改巴~ 应该可以


另外其实用我写的 曹操快切 搭配一小段autohotkey代码(功能是临时将指定的若干窗口激活状态进行同步)也能很优雅地实现。

台前调度?mac上的rectangle pro倒是能对一组窗口编队,快捷键激活置顶,但是编队不是很方便。
也许win也有窗口管理软件能支持

Capslock+任意键绑定窗口
image

窗口标识会自动为窗口添加按键标识
image

如果你是要求鼠标放到哪个窗口就自动激活当前窗口的话 我记得微软出过一个小工具 名字忘了 明天给你找找

1 个赞

什么场景需要对这么多窗口反复操作,没想出来

1 个赞

如果需要同时多个窗口摆出来,感觉还是多个屏幕更理想一点。 现在淘汰的GT970显卡,都可以带3个4k屏幕,咸鱼只要300多。再加俩屏幕就会很爽了。

窗口布局管理器+自定义快捷键绑定多个窗口?

感觉可以试试虚拟桌面这类的,把各个窗口分到不同桌面就能避免全堆在一起了

各位大神们,我也有个需求,mac上有木有自动批量打开一些软件,并按记忆排列窗口,分布在不同的桌面上。

Windows 上我大概可以做,但想来想去似乎不是很有必要

1 个赞

换个角度,换种思路,这事情虚拟桌面好像也挺合适的吗?
有钱的情况下,可以直接上多个显示器。

我前面提到的rectangle pro可以尝试一下

批量命令行curl下载多个资源时。。。。

自己写过一个工具:按窗口标题过滤,再人工勾选,再自动设置所选窗口的长宽和位置,使得它们能排列满桌面,一眼全部看得清它们的运行情况、下载进度

new bing 太强了!!!!!

我直接把你这个需求交给它,它直出完美代码,完美运行!!!

image

通过提问还能追加需求,太厉害了~

今天太晚了,明天我整个完整版出来。

GPT4.0 一出,写代码真他喵不用动手了!

1 个赞

这么强的吗?直接能用还是需要自己再进行调试修改?

给的代码是可以直接用的!
你可以试试。

话术:
帮我写一段autohotkey代码,功能如下:

  1. 变量k初始为0,当变量k为0时,如果监测到键盘双击“alt”键,使变量k赋值为1。
  2. 当变量k为1时,此时如果按下“alt + 1”,则将当前激活窗口加入到1号窗口组之中。(在多个窗口,多次按下“alt + 1”,则会使多个窗口加入到1号窗口组之中。)
  3. 当变量k为0时,按下“alt + 1”,则将1号窗口组的所有绑定窗口依次激活并置顶。
  4. 当变量k为1时,如果监测到键盘双击“alt”键,使变量k赋值为0。
  5. 当变量k为0时,按下“alt + shift +1”,则将1号窗口组变量清空。

Windows 上 Win+1 是切换到任务栏上的第一个窗口,Win+2 是第二个窗口。
对于你的需求,编队就是把窗口按照需要的顺序摆放,然后给 「Win+数字键」绑定快捷键就行了

这是new bing写的两个版本的代码,我进行合并局部改错美化出来的:
功能是:
双击 alt 键,进入绑定模式
此时在你想要编组的窗口按下alt + 1,则这些窗口都会被编入第1组。
再次双击 alt 键,退出绑定模式(或者进入绑定模式超过30秒也会自动退出绑定模式)
非绑定模式下,按下alt + 1 按键,则会依次将编入第1组的窗口全部激活,并且平均分配排列在屏幕上。
按下alt + shift + 1,按键,则会解绑第1组,取消编队。
说明
(请忽略右下角的输入显示,极其不准确)

#NoEnv
#SingleInstance Force
SetBatchLines -1
CoordMode, mouse, Screen
CoordMode, mouse, Screen

k := 0
group1 := []

~LAlt::
    if (A_PriorHotKey = "~LAlt" and A_TimeSincePriorHotkey < 400) {
        k := !k
        if K
        {
            ToolTip,窗口绑定ing
            SetTimer,overbind,-30000
        }else
        {
            ToolTip,绑定结束
            SetTimer,toolout,-3000
        }
    }
return

Toolout:
{
    ToolTip
    return
}

overbind:
{
    k := !k
    ;ToolTip,绑定结束
    ;SetTimer,toolout,-3000
    return
}

#If (k = 1)
    !1::
        WinGet, active_id, ID, A
        group1.Push(active_id)
    return
#If

#If (k = 0)
    !1::
    {
    ; 获取屏幕尺寸
    screen_width:=A_ScreenWidth
    screen_height:=A_ScreenHeight

    ; 获取窗口组中窗口数量
    group_count := group1.Length()

    ; 计算每个窗口的大小和位置
    window_width := Round((screen_width / group_count), 1)  
    window_height := screen_height 
    window_x := 0 
    window_y := 0 
    ToolTip,%window_width% %window_height% %window_x% %window_y%

    ; 遍历窗口组中的每个窗口并调整大小和位置 
    for index, window in group1 {
        WinActivate, ahk_id %window%
        WinMove ahk_id %window%, , window_x , window_y , window_width , window_height 
        window_x := window_x + window_width
        ;Sleep,5000
        ;ToolTip,%window_x% %window_width%
        }
}
    return
    !+1::
        group1 := []
    return
#If
; 同理,设置“alt + 2”、“alt +shift + 2”……“alt + 9”、“alt + shift + 9”
1 个赞

强啊 :blush:

试试吧,有啥需要改进的我再让new bing给你改进改进~

如果满意的话,点个解决方案吧~