Evite cambiar automáticamente a otro escritorio virtual al abrir un archivo

Evite cambiar automáticamente a otro escritorio virtual al abrir un archivo

Llevo un tiempo usando escritorios virtuales en Windows 10. Funciona bien, el único problema que encontré y que me encantaría resolver es el siguiente escenario:

  • tengo virtualesEscritorio 1con Microsoft Excel o Microsoft Word Abrir en Sheet.xlsx o Doc.docx
  • tengo virtualesEscritorio 2y a punto de abrir otra hoja/documento, Sheet2.xlsx o Doc2.xlsx

En este caso, cambia aEscritorio 1, porque ya tiene Excel/Word abierto, mientras que espero que se abra enEscritorio 2ya que estoy allí. Por supuesto, podría mover la ventana Sheet2.xlsx/Doc2.xlsx al Escritorio 2, pero tengo que hacerlo manualmente desde la multitarea.

No probé otras aplicaciones, pero supongo que es el mismo comportamiento.

¿Hay alguna forma de evitar este comportamiento y hacer que Windows abra el otro documento/hoja en el escritorio virtual actual?

Respuesta1

Desde MS Office 2013, las ventanas de cada aplicación de Office se ejecutan en una única instancia del ejecutable. Cuando una instancia abre una nueva ventana, la Vista de tareas primero cambia a una ventana de aplicación existente. (Mi otra queja es que varios comandos DESHACER retroceden cronológicamente en varias ventanas, lo que nunca es lo que quiero).

Word y Excel

Resolví el problema en Office 2016 usando opciones de línea de comando para ejecutar cada ventana de Word y Excel en una instancia separada. Para Word, la opción es /N; para Excel lo es /X. Cuesta un poco más de tiempo de inicio y un poco más de memoria. No ejecuto muchas ventanas a la vez, por lo que para mí la molestia reducida vale la pena.

Para los iconos del escritorio, barras de herramientas personalizadas y otros accesos directos, simplemente puede editar las propiedades y agregar la opción a la línea de comando de destino:

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

Hacer que la opción se aplique al abrir un archivo (por ejemplo, haciendo doble clic) es un poco más difícil.

  1. Abrir una ventana de comandoejecutando como administrador.

  2. Encuentre el tipo de archivo asociado con una extensión de archivo:

> asociación .xls
.xls=Hoja.de.Excel.8
  1. Busque el comando utilizado para abrir ese tipo de archivo:
> ftipo excel.sheet.8
excel.sheet.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" "%1"
  1. Reemplace ese comando con uno que incluya la opción:
> ftype excel.sheet.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
excel.sheet.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
  1. Repita desde el paso 2 para cada extensión de archivo que utilice (por ejemplo, .xlsx). Los que tienen el mismo tipo de archivo no necesitan más cambios.

Puede realizar un cambio total capturando todas las definiciones de tipo f de Excel en un archivo .BAT, editando el archivo para agregarlo ftypeal inicio de cada línea y /Xdespués de cada .EXE y (para scripts .BAT) cambiando %1a%%1

> tipo f | busque /i "office16\excel" > ftypes.bat

> [tu editor de texto] ftypes.bat
    (realice los cambios descritos anteriormente)

La ejecución del script resultante debería producir un resultado similar a:

> ftypes.bat

> ftype dqyfile=C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
dqyfile=C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"

> ftype Excel.Addin="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Addin="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Backup="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Backup="C:\Archivos de programa (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:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"

> ftype Excel.Chart.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Chart.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.CSV="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.CSV="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Macrosheet="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Macrosheet="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.OpenDocumentSpreadsheet.12="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.OpenDocumentSpreadsheet.12="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Sheet.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Sheet.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Sheet.12="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Sheet.12="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.SLK="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.SLK="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Template="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Template="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Template.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Template.8="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Workspace="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Workspace="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.XLL="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.XLL="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excelhtmlfile="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
Excelhtmlfile="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X

> ftype Excelhtmltemplate="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
Excelhtmltemplate="C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X

> ftype iqyfile=C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
iqyfile=C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"

Otras aplicaciones de Office

Algunas aplicaciones de Office, en particular PowerPoint, no tienen opción para iniciar una nueva instancia. Sin embargo, ejecutar una aplicación como un usuario diferente crea una nueva instancia. Entonces, una solución es crear usuarios locales de Windows para tantos escritorios virtuales como desee abrir PowerPoint simultáneamente. Este esquema no es ideal, porque debe recordar qué usuarios/instancias ya tiene en ejecución antes de abrir uno nuevo. Si solo tienes unos pocos, puede que no sea tan malo.

Para crear cada usuario:

Configuración > Cuentas > Familia y otros usuarios > [+] Agregar a otra persona a esta PC

  1. No tengo la información de inicio de sesión de esta persona
  2. Agregar un usuario sin una cuenta de Microsoft
  3. Ingrese un nuevo nombre de usuario, contraseña y preguntas de seguridad

Para crear un acceso directo que inicie PowerPoint como un usuario específico, edite las propiedades del acceso directo para usar un comando como:

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

runassolicita la contraseña del usuario. /savecredguarda la contraseña la primera vez y utiliza la contraseña guardada posteriormente. Es posible que desees hacer inicialmente cada atajoEjecutar: ventana normal, y luego cambiarlo aEjecutar: Minimizado.

Estos accesos directos pueden estar en el escritorio de Windows o en un menú de barra de herramientas personalizado. Una vez que PowerPoint se esté ejecutando, puede abrir un archivo PPT desde allí o arrastrar un archivo desde el Explorador de archivos. Si está trabajando en algunos archivos PPT durante un tiempo prolongado, puede crear un acceso directo para cada archivo, especificando con qué usuario ejecutar.

Abrir una instancia de PowerPoint desde un archivo PPT

Desafortunadamente, arrastrar un archivo PPT a uno de los accesos directos del escritorio descritos anteriormente no funcionará porque runasrequiere que se cite la línea de comando completa de PowerPoint. Los atajos para abrir un archivo PPT necesitan directamente un script intermedio para ordenar las comillas. Cree un script como "PowerPoint_Usuario.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\""

Luego cree un acceso directo para cada usuario, con un comando como:

C:\bin\PowerPoint_User.bat  user2

Si el acceso directo está en su escritorio de Windows, puede arrastrar un archivo PPT hacia él. Si crea el acceso directo en %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo, puede hacer clic derecho en un archivo PPT y abrirlo desde "Enviar a"menú. En cualquier caso, recuerde que cada acceso directo solicitará una contraseña la primera vez que se ejecute.

(Si necesita depurar el acceso directo, configúrelo enEjecutar: ventana normal, anteponga cmd /kel comando y elimínelo @echo offdel script).

Respuesta2

Excel usa el mismo ejecutable para abrir hojas, por eso cambia el escritorio. La solución es abrir un segundoinstanciade Excel:

Vaya al escritorio 2:

  • Abra el menú Inicio, busque Excel
  • Presione ALT + Haga clic en el símbolo de Excel
  • Presione Sí cuando se le pregunte "¿Quiere iniciar una nueva instancia de Excel?"

Descubrí que Excel solo usa la instancia más nueva para abrir hojas cuando se abre en el Explorador de archivos, incluso si se selecciona otra instancia.

Entonces, como solución alternativa, si luego desea abrir otra hoja en el Escritorio 1, vaya a la instancia en ese escritorio (abra una nueva, si está cerrada) y luego haga clic en "Archivo -> Abrir" para abrir una nueva hoja en esa instancia.

Respuesta3

Una solución que le permite continuar ejecutando Excel en una sola instancia del ejecutable (y por lo tanto continuar teniendo la capacidad de copiar y pegar entre libros) es configurar Excel para que se muestre en todos los escritorios.

Ventanas 10:

  1. AbiertoVista de tareas(presione Win+Tab)
  2. Seleccionar (flotarpuntero sobre) el escritorio virtual con Excel abierto en él.
  3. Haga clic derecho o mantenga presionado en la ventana abierta de Excel y haga clic enMostrar ventanas de esta aplicación en todos los escritorios.

Ventanas 11:

  1. Haga clic en elVista de tareasicono o presione Win+TabIcono de vista de tareas
  2. Haga clic derecho en unventana de excel.
  3. SeleccionarMostrar ventanas de esta aplicación en todos los escritorios.

Respuesta4

Me acabo de encontrar con este problema y parece tener una solución fácil. Estoy usando Windows 11. Si abre las aplicaciones y ventanas que desea usar, en, digamos, 2 escritorios virtuales, incluidas 2 hojas de cálculo de Excel, simplemente haga clic en el botón Escritorios en la barra de tareas. Aparecerá una pantalla que muestra todas las ventanas abiertas y, en la parte inferior, todos los escritorios. Simplemente arrastre la ventana de Excel que desee, digamos Escritorio 2, al Escritorio 2. ¡Listo!

información relacionada