我在 Windows 10 中使用虚拟桌面已有一段时间了。它工作正常,我发现并希望解决的唯一问题是以下场景:
- 我在 Sheet.xlsx 或 Doc.docx 上打开了带有 Microsoft Excel 或 Microsoft Word的虚拟桌面 1
- 我有 Virtual Desktop 2并且即将打开另一个工作表/文档,Sheet2.xlsx 或 Doc2.xlsx
在这种情况下,它切换到Desktop 1,因为它已经打开了 Excel / Word,而我希望它能够在Desktop 2上打开,因为我在那里。当然,我可以将 Sheet2.xlsx / Doc2.xlsx 窗口移动到桌面 2,但我必须从多任务处理中手动完成。
我没有尝试其他应用程序,但我猜这是相同的行为。
有没有办法避免这种行为并让 Windows 在当前虚拟桌面中打开其他文档/工作表?
从 MS Office 2013 开始,每个 Office 应用程序的窗口都在可执行文件的单个实例中运行。当实例打开新窗口时,任务视图首先切换到现有应用程序窗口。(我的另一个抱怨是多个 UNDO 命令在多个窗口中按时间顺序回溯,这绝不是我想要的。)
Word 和 Excel
我通过使用命令行选项在单独的实例中运行每个 Word 和 Excel 窗口解决了 Office 2016 中的问题。对于 Word,选项是
/N
; 对于 Excel,它是/X
. 它需要一点额外的启动时间和一点额外的内存。我不会一次运行很多窗口,所以对我来说减少恶化是值得的。对于桌面图标、自定义工具栏和其他快捷方式,您可以简单地编辑属性并将选项添加到目标命令行:
当您打开文件(例如通过双击)时应用该选项有点困难。
打开以管理员身份运行的命令窗口。
查找与文件扩展名关联的文件类型:
您可以通过将所有 Excel ftype 定义捕获到 .BAT 文件中,编辑文件以
ftype
在每行开头和/X
每个 .EXE 之后添加,以及(对于 .BAT 脚本)更改%1
为%%1
运行生成的脚本应该会产生类似于以下内容的输出:
其他办公应用
某些 Office 应用(尤其是 PowerPoint)没有启动新实例的选项。但是,以不同用户身份运行应用程序会创建一个新实例。因此,一种解决方法是为要同时打开 PowerPoint 的多个虚拟桌面创建本地 Windows 用户。这种方案并不理想,因为您必须记住在打开新用户/实例之前已经运行了哪些用户/实例。如果你只有几个,它可能不会太糟糕。
创建每个用户:
设置 > 帐户 > 家庭和其他用户 > [+] 将其他人添加到此 PC
要创建以指定用户身份启动 PowerPoint 的快捷方式,请编辑快捷方式的属性以使用以下命令:
runas
提示输入用户密码。/savecred
第一次保存密码,随后使用保存的密码。您可能希望最初使每个快捷方式Run: Normal window,然后将其更改为Run: Minimized。这些快捷方式可以位于 Windows 桌面或自定义工具栏菜单中。一旦 PowerPoint 运行,您可以从那里打开一个 PPT 文件,或者从文件资源管理器中拖入一个文件。如果您长时间处理几个 PPT 文件,您可以为每个文件创建一个快捷方式,指定以哪个用户身份运行。
从 PPT 文件打开 PowerPoint 实例
不幸的是,将 PPT 文件拖到上述桌面快捷方式之一是行不通的,因为
runas
需要引用完整的 PowerPoint 命令行。直接打开PPT文件的快捷键需要一个中间脚本来整理引号。创建一个脚本,例如“ PowerPoint_User.bat ”:然后为每个用户创建一个快捷方式,使用如下命令:
如果快捷方式在您的 Windows 桌面上,那么您可以将 PPT 文件拖到上面。如果您在 中创建快捷方式
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo
,则可以在 PPT 文件上单击鼠标右键,然后从“发送到”菜单中将其打开。无论哪种情况,请记住每个快捷方式在第一次运行时都会提示输入密码。(如果您需要调试快捷方式,请将其设置为Run: Normal window,
cmd /k
添加到命令之前,然后@echo off
从脚本中删除。)Excel 使用相同的可执行文件来打开工作表,这就是它切换桌面的原因。解决方案是打开第二个Excel实例:
转到桌面 2:
我发现 Excel 在文件资源管理器中打开时只使用最新的实例来打开工作表,即使选择了另一个实例也是如此。
因此,作为一种解决方法,如果您想稍后在桌面 1 上打开另一张工作表,请转到该桌面上的实例(打开一个新的,如果已关闭),然后单击“文件 -> 打开”以在该桌面上打开一个新工作表实例。
我观察到的是,当您有多个桌面并选择打开一个文档(从这些桌面中的任何一个)时,操作系统将:
(i) 如果应用程序未打开,它将在当前桌面打开。
(ii) 如果应用程序已经打开,它将在应用程序的最后一个激活实例中打开文档(无论您从哪个桌面单击它)
因此,如果您想打开一个应用程序的多个文件(例如 MS Word),在单击打开之前,请确保该应用程序的实例已在当前桌面中激活。
我在很多论坛上都看到过这个问题,我希望他们能尽快提出合适的解决方案。