"同一个应用可以在多个窗口中重新启动" 除了这一点之前没做过,不太了解.
其他的方案,需要的核心功能都有现成的.只不过基本都只限于核心功能,所有的"管理"功能都得自己写.不清楚 AutoHotkey 写"管理系统"麻烦不..
如果不限死要用 AutoHotkey 的话, 换 c/c++/c# 都不算多麻烦,核心功能模块都有现成的或者半现成的库可以直接用
前段时间的 Win32 开发其中有个模块涉及到类似的功能.
简单的工作逻辑是,监控窗口的创建或者进程的创建,比对进程信息对窗口进行分类,移动对应窗口到指定虚拟桌面..
以 EnumWindows 为起点, 来达到监控窗口的目的,比如发现新窗口后, 使用 GetWindowThreadProcessId 来获取窗口对应的进程 ID,再获取详细的进程信息.比对进程对应设定的桌面,进行再进行对应的虚拟桌面切换.
切换桌面比如说用
https://www.nuget.org/packages/VirtualDesktop/ 来实现,没多少代码量.
代码最多的就是都是"管理"模块,如果一定要用 AutoHotkey 来实现的话,虚拟桌面管理也可以打包成 DLL, 跟用 EnumWindows 一样也 DllCall 来调用..