V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cocong
V2EX  ›  程序员

请问 Win10 多桌面如何绑定应用?

  •  
  •   cocong ·
    hzh-cocong · 2022-08-06 08:55:52 +08:00 · 2391 次点击
    这是一个创建于 847 天前的主题,其中的信息可能已经有所发展或是发生改变。

    即不管当前在哪个桌面,每次启动应用时都会先切换到绑定的桌面再启动程序。

    当前能想到的就是修改 autohotkey 脚本,在使用快捷键启动程序时,先切换到对应的桌面,再启动程序,不过如果使用鼠标双击应用的话就没办法了,而我也只是常用的程序设置了快捷键,不常一旦用鼠标打开,就可能会把当前的桌面搞乱。

    多桌面其实有两种使用方案: 一种是固定将某一类程序绑定再同一个窗口中,比如我再 Mac 中,就将文本编辑、浏览器和命令行工具绑定到窗口三,这样敲代码时在这些应用之间切换就不会有桌面切换。而聊天工具则绑定到窗口四,避免聊天影响敲代码。 另一种使用方案是完全独立的桌面,如桌面一用来开发、桌面二用来娱乐。这种在 Windows 下可以实现,Windows 在多桌面中,同一个应用可以在多个窗口中重新启动。不过这种的缺点就是如果场景规划过细,则需要频繁进行桌面切换,之后才能使用快捷键切换应用,且需要有对应的程序支持(非常复杂,只能用 autohotkey 实现,且目前网上大部分都没有针对这种设计的脚本)。如果场景规划过粗,则同一个桌面内将会有多种应用,切换这些应用也会成为问题。 所以我比较倾向于第一种,这就需要 Win10 能够实现多桌面应用绑定。最前面写的解决方法是我刚想到的,在这之前,我是直接不使用多桌面了,而是全部应用都在一个桌面中打开,然后使用快捷键切换应用,先凑合用,像 Mac 那种多桌面我觉得还是比较清爽的。

    13 条回复    2022-08-07 12:11:48 +08:00
    sinnosong1
        1
    sinnosong1  
       2022-08-06 09:40:32 +08:00
    你在一个桌面里面,然后用 WIN+N(1-9)切换软件不行嘛?
    dingwen07
        2
    dingwen07  
       2022-08-06 09:44:04 +08:00 via iPhone
    多任务,右键对应的窗口
    dingwen07
        3
    dingwen07  
       2022-08-06 09:45:34 +08:00 via iPhone
    记错了,忽略#2
    dingwen07
        4
    dingwen07  
       2022-08-06 09:47:10 +08:00 via iPhone
    我的方案是第二种,Windows 下切换虚拟桌面是瞬间完成的不需要过动画,所以还算方便
    revalue
        5
    revalue  
       2022-08-06 09:54:47 +08:00
    win 和 mac 都用过。个人而言多桌面用于开全屏应用独占一个桌面,否则尽量不用
    brucecao
        6
    brucecao  
       2022-08-06 09:55:56 +08:00
    win10 的多桌面不能设置不同壁纸,不爽!
    wellwellwell
        7
    wellwellwell  
       2022-08-06 10:14:08 +08:00
    windows 的多桌面没有 mac 那么灵活, 我此前也想像你一样这么折腾, 我在 mac 上开了 10 个桌面, 每个桌面都有自己的专属, 其中一个桌面放垃圾, 就是不常打开的统统设定到那个桌面.

    我也想在 windows 上运用这个体系, 但是没有成功, 大致有三个原因

    第一个原因是, 桌面切换不方便. 我在桌面 2 的时候想打卡桌面 8, 会把人累死. ahk 勉强实现, 但并不优雅
    第二个原因是, 像你说的没有应用绑定这种设置, 开机重启后会带来不确定性.
    第三个原因是, 没有找到应用在各个桌面穿梭的功能, 就是我希望一些应用可以灵活出现在任何桌面, 不是我首次打开的时候, 而是我当前在哪个桌面它就该出现在哪个桌面, 比如词典应用, 或者终端.

    我现在使用单桌面 在 windows 上
    cocong
        8
    cocong  
    OP
       2022-08-06 10:29:48 +08:00
    @wellwellwell 用了 Windows 一个月了,感觉用 autohotkey 应该是可以实现任何想要的功能的,就是那玩意太复杂了,貌似快捷键映射还有副作用!
    wellwellwell
        9
    wellwellwell  
       2022-08-06 11:15:29 +08:00
    @cocong 没错, 如果想小打小闹, autohotkey 很实用, 如果想实现复杂功能, 需要系统去学习, 这下成本太高了.

    人太容易陷入追求最佳效率上无法自拔, 我曾为了一致性问题上在 windows 上花费大量时间, 为了让它和 mac 行为一致, 最后完全失败, 比如我无法在 windows 上找到和 alfred 匹敌的应用, 这类事非常多, 随着使用的深入, 我现在的策略是, 少用 windows, 遵照 windows 土鳖的习俗
    xiaocsl
        10
    xiaocsl  
       2022-08-06 11:47:09 +08:00
    "同一个应用可以在多个窗口中重新启动" 除了这一点之前没做过,不太了解.
    其他的方案,需要的核心功能都有现成的.只不过基本都只限于核心功能,所有的"管理"功能都得自己写.不清楚 AutoHotkey 写"管理系统"麻烦不..

    如果不限死要用 AutoHotkey 的话, 换 c/c++/c# 都不算多麻烦,核心功能模块都有现成的或者半现成的库可以直接用

    前段时间的 Win32 开发其中有个模块涉及到类似的功能.

    简单的工作逻辑是,监控窗口的创建或者进程的创建,比对进程信息对窗口进行分类,移动对应窗口到指定虚拟桌面..

    以 EnumWindows 为起点, 来达到监控窗口的目的,比如发现新窗口后, 使用 GetWindowThreadProcessId 来获取窗口对应的进程 ID,再获取详细的进程信息.比对进程对应设定的桌面,进行再进行对应的虚拟桌面切换.
    切换桌面比如说用 https://www.nuget.org/packages/VirtualDesktop/ 来实现,没多少代码量.

    代码最多的就是都是"管理"模块,如果一定要用 AutoHotkey 来实现的话,虚拟桌面管理也可以打包成 DLL, 跟用 EnumWindows 一样也 DllCall 来调用..
    mmdsun
        11
    mmdsun  
       2022-08-06 20:04:29 +08:00 via iPhone
    @brucecao Win11 可以设置壁纸给不同的桌面,右键桌面即可。 微软这点更新居然不给 Win10 ?
    brucecao
        12
    brucecao  
       2022-08-07 07:53:42 +08:00
    @mmdsun win10 这个功能至今没有,公司机器不能 win11.
    iX8NEGGn
        13
    iX8NEGGn  
       2022-08-07 12:11:48 +08:00
    为什么不用现成的软件,dexpot 虽然不更新,但依然好用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2496 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.