AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1570107
Accepted
Yaman
Yaman
Asked: 2020-07-21 04:52:40 +0800 CST2020-07-21 04:52:40 +0800 CST 2020-07-21 04:52:40 +0800 CST

避免在打开文件时自动切换到其他虚拟桌面

  • 772

我在 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 在当前虚拟桌面中打开其他文档/工作表?

windows-10 virtual-desktop
  • 3 3 个回答
  • 7343 Views

3 个回答

  • Voted
  1. Best Answer
    George S
    2020-07-22T15:52:01+08:002020-07-22T15:52:01+08:00

    从 MS Office 2013 开始,每个 Office 应用程序的窗口都在可执行文件的单个实例中运行。当实例打开新窗口时,任务视图首先切换到现有应用程序窗口。(我的另一个抱怨是多个 UNDO 命令在多个窗口中按时间顺序回溯,这绝不是我想要的。)

    Word 和 Excel

    我通过使用命令行选项在单独的实例中运行每个 Word 和 Excel 窗口解决了 Office 2016 中的问题。对于 Word,选项是/N; 对于 Excel,它是/X. 它需要一点额外的启动时间和一点额外的内存。我不会一次运行很多窗口,所以对我来说减少恶化是值得的。

    对于桌面图标、自定义工具栏和其他快捷方式,您可以简单地编辑属性并将选项添加到目标命令行:

    "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" /X "C:\Data\Weather\Weather Log.xls"
    

    当您打开文件(例如通过双击)时应用该选项有点困难。

    1. 打开以管理员身份运行的命令窗口。

    2. 查找与文件扩展名关联的文件类型:

    > 关联.xls
    .xls=Excel.Sheet.8
    
    1. 查找用于打开该文件类型的命令:
    > ftype excel.sheet.8
    excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" "%1"
    
    1. 将该命令替换为包含以下选项的命令:
    > ftype excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    1. 对您使用的每个文件扩展名(例如 .xlsx)从第 2 步开始重复。具有相同文件类型的文件无需进一步更改。

    您可以通过将所有 Excel ftype 定义捕获到 .BAT 文件中,编辑文件以ftype 在每行开头和 /X每个 .EXE 之后添加,以及(对于 .BAT 脚本)更改%1为%%1

    > ftype | 查找 /i "office16\excel" > ftypes.bat
    
    > [您的文本编辑器] ftypes.bat
        (进行上述更改)
    

    运行生成的脚本应该会产生类似于以下内容的输出:

    > ftypes.bat
    
    > ftype dqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
    dqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
    
    > ftype Excel.Addin="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Addin="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Backup="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Backup="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Chart=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
    Excel.Chart=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
    
    > ftype Excel.Chart.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Chart.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.CSV="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.CSV="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Macrosheet="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Macrosheet="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.OpenDocumentSpreadsheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.OpenDocumentSpreadsheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Sheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Sheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.SLK="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.SLK="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Template="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Template="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Template.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Template.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.Workspace="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.Workspace="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excel.XLL="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    Excel.XLL="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
    
    > ftype Excelhtmlfile="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
    Excelhtmlfile="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
    
    > ftype Excelhtmltemplate="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
    Excelhtmltemplate="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
    
    > ftype iqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
    iqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
    
    

    其他办公应用

    某些 Office 应用(尤其是 PowerPoint)没有启动新实例的选项。但是,以不同用户身份运行应用程序会创建一个新实例。因此,一种解决方法是为要同时打开 PowerPoint 的多个虚拟桌面创建本地 Windows 用户。这种方案并不理想,因为您必须记住在打开新用户/实例之前已经运行了哪些用户/实例。如果你只有几个,它可能不会太糟糕。

    创建每个用户:

    设置 > 帐户 > 家庭和其他用户 > [+] 将其他人添加到此 PC

    1. 我没有此人的登录信息
    2. 添加没有 Microsoft 帐户的用户
    3. 输入新的用户名、密码和安全问题

    要创建以指定用户身份启动 PowerPoint 的快捷方式,请编辑快捷方式的属性以使用以下命令:

    runas  /user:user2  /savecred  "C:\Program Files (x86)\Microsoft Office\root\Office16\POWERPNT.EXE"
    

    runas提示输入用户密码。 /savecred第一次保存密码,随后使用保存的密码。您可能希望最初使每个快捷方式Run: Normal window,然后将其更改为Run: Minimized。

    这些快捷方式可以位于 Windows 桌面或自定义工具栏菜单中。一旦 PowerPoint 运行,您可以从那里打开一个 PPT 文件,或者从文件资源管理器中拖入一个文件。如果您长时间处理几个 PPT 文件,您可以为每个文件创建一个快捷方式,指定以哪个用户身份运行。

    从 PPT 文件打开 PowerPoint 实例

    不幸的是,将 PPT 文件拖到上述桌面快捷方式之一是行不通的,因为runas需要引用完整的 PowerPoint 命令行。直接打开PPT文件的快捷键需要一个中间脚本来整理引号。创建一个脚本,例如“ PowerPoint_User.bat ”:

    :: Usage:  PowerPoint_User  <username>  <PPT filename>
    :: Opens a PPT file as a specified user, starting a new PowerPoint instance on
    :: the current virtual desktop if that user was not already running PowerPoint.
    :: (%~f2 expands %2 to full path with no quotes.  See "call /?".)
    @echo off
    C:\Windows\System32\runas.exe /user:%1 /savecred "POWERPNT.EXE \"%~f2\""
    

    然后为每个用户创建一个快捷方式,使用如下命令:

    C:\bin\PowerPoint_User.bat  user2
    

    如果快捷方式在您的 Windows 桌面上,那么您可以将 PPT 文件拖到上面。如果您在 中创建快捷方式%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo,则可以在 PPT 文件上单击鼠标右键,然后从“发送到”菜单中将其打开。无论哪种情况,请记住每个快捷方式在第一次运行时都会提示输入密码。

    (如果您需要调试快捷方式,请将其设置为Run: Normal window,cmd /k 添加到命令之前,然后@echo off从脚本中删除。)

    • 8
  2. Chris
    2021-11-24T23:18:53+08:002021-11-24T23:18:53+08:00

    Excel 使用相同的可执行文件来打开工作表,这就是它切换桌面的原因。解决方案是打开第二个Excel实例:

    转到桌面 2:

    • 打开开始菜单,搜索 Excel
    • 按 ALT + 单击 Excel 符号
    • 当询问“是否要启动 Excel 的新实例?”时按是

    我发现 Excel 在文件资源管理器中打开时只使用最新的实例来打开工作表,即使选择了另一个实例也是如此。

    因此,作为一种解决方法,如果您想稍后在桌面 1 上打开另一张工作表,请转到该桌面上的实例(打开一个新的,如果已关闭),然后单击“文件 -> 打开”以在该桌面上打开一个新工作表实例。

    • 1
  3. joseph praful
    2020-08-14T02:36:17+08:002020-08-14T02:36:17+08:00

    我观察到的是,当您有多个桌面并选择打开一个文档(从这些桌面中的任何一个)时,操作系统将:

    (i) 如果应用程序未打开,它将在当前桌面打开。

    (ii) 如果应用程序已经打开,它将在应用程序的最后一个激活实例中打开文档(无论您从哪个桌面单击它)

    因此,如果您想打开一个应用程序的多个文件(例如 MS Word),在单击打开之前,请确保该应用程序的实例已在当前桌面中激活。

    我在很多论坛上都看到过这个问题,我希望他们能尽快提出合适的解决方案。

    • 0

相关问题

  • VMware Workstation USB 仲裁服务无法自动启动

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 资源管理器侧面板中的桌面外壳快捷方式

  • 为什么我不能将文件从 Android 发送到 Windows 10?

  • 在多个文件上打开方式?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve