Automatisches Wechseln zu einem anderen virtuellen Desktop beim Öffnen einer Datei vermeiden

Automatisches Wechseln zu einem anderen virtuellen Desktop beim Öffnen einer Datei vermeiden

Ich verwende virtuelle Desktops schon seit einiger Zeit in Windows 10. Es funktioniert gut, das einzige Problem, das ich gefunden habe und gerne lösen würde, ist das folgende Szenario:

  • Ich habe VirtualDesktop-PC 1mit Microsoft Excel oder Microsoft Word Öffnen Sie Sheet.xlsx oder Doc.docx
  • Ich habe VirtualDesktop 2und bin dabei, ein anderes Blatt / Dokument zu öffnen, Sheet2.xlsx oder Doc2.xlsx

In diesem Fall wechselt es zuDesktop-PC 1, weil Excel / Word bereits geöffnet ist, obwohl ich erwarte, dass es sich öffnetDesktop 2da ich da bin. Natürlich könnte ich das Sheet2.xlsx-/Doc2.xlsx-Fenster auf Desktop 2 verschieben, aber ich muss es manuell im Multitasking tun.

Ich habe keine anderen Anwendungen ausprobiert, aber ich vermute, dass das Verhalten dasselbe ist.

Gibt es eine Möglichkeit, dieses Verhalten zu vermeiden und Windows dazu zu bringen, das andere Dokument/Blatt auf dem aktuellen virtuellen Desktop zu öffnen?

Antwort1

Seit MS Office 2013 werden die Fenster jeder Office-App in einer einzigen Instanz der ausführbaren Datei ausgeführt. Wenn eine Instanz ein neues Fenster öffnet, wechselt Task View zuerst zu einem vorhandenen App-Fenster. (Mein anderer Kritikpunkt ist, dass mehrere UNDO-Befehle chronologisch über mehrere Fenster hinweg zurückgehen, was ich nie möchte.)

Word und Excel

Ich habe das Problem in Office 2016 gelöst, indem ich Befehlszeilenoptionen verwendet habe, um jedes Word- und Excel-Fenster in einer separaten Instanz auszuführen. Für Word lautet die Option /N; für Excel lautet sie /X. Dies kostet etwas mehr Startzeit und etwas mehr Speicher. Ich verwende nicht viele Fenster gleichzeitig, daher ist mir die geringere Belastung das wert.

Für Desktopsymbole, benutzerdefinierte Symbolleisten und andere Verknüpfungen können Sie einfach die Eigenschaften bearbeiten und die Option zur Zielbefehlszeile hinzufügen:

"C:\Programme (x86)\Microsoft Office\root\Office16\EXCEL.EXE" /X "C:\Daten\Wetter\Wetterprotokoll.xls"

Etwas schwieriger ist es, die Option beim Öffnen einer Datei (z. B. durch Doppelklick) anzuwenden.

  1. Öffnen Sie ein BefehlsfensterAusführung als Administrator.

  2. Suchen Sie den Dateityp, der einer Dateierweiterung zugeordnet ist:

> assoc.xls
.xls=Excel.Tabelle.8
  1. Suchen Sie den Befehl zum Öffnen dieses Dateityps:
> fTyp excel.sheet.8
excel.sheet.8="C:\Programme (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" "%1"
  1. Ersetzen Sie diesen Befehl durch einen, der die folgende Option enthält:
> ftype excel.sheet.8="C:\Programme (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
excel.sheet.8="C:\Programme (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
  1. Wiederholen Sie Schritt 2 für jede Dateierweiterung, die Sie verwenden (z. B. .xlsx). Bei Dateien mit demselben Dateityp müssen keine weiteren Änderungen vorgenommen werden.

ftypeSie könnten eine umfassende Änderung vornehmen, indem Sie alle Excel-FTYPE-Definitionen in einer .BAT-Datei erfassen, die Datei bearbeiten und am Anfang jeder Zeile und nach jeder .EXE hinzufügen /Xund (für .BAT-Skripte) ändern %1in%%1

> ftype | find /i "office16\excel" > ftypes.bat

> [Ihr Texteditor] ftypes.bat
    (nehmen Sie die oben beschriebenen Änderungen vor)

Beim Ausführen des resultierenden Skripts sollte eine Ausgabe ähnlich der folgenden erzeugt werden:

> ftypes.bat

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

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

> ftype Excel.Backup="C:\Programme (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Backup="C:\Programme (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Andere Office-Apps

Einige Office-Apps, insbesondere PowerPoint, bieten keine Option zum Starten einer neuen Instanz. Wenn Sie eine App jedoch als anderer Benutzer ausführen, wird eine neue Instanz erstellt. Eine Problemumgehung besteht darin, lokale Windows-Benutzer für so viele virtuelle Desktops zu erstellen, wie Sie PowerPoint gleichzeitig öffnen möchten. Dieses Schema ist nicht ideal, da Sie sich merken müssen, welche Benutzer/Instanzen Sie bereits ausführen, bevor Sie eine neue öffnen. Wenn Sie nur wenige haben, ist es möglicherweise nicht so schlimm.

So erstellen Sie die einzelnen Benutzer:

Einstellungen > Konten > Familie & andere Benutzer > [+] Jemanden zu diesem PC hinzufügen

  1. Ich habe die Anmeldeinformationen dieser Person nicht
  2. Einen Benutzer ohne Microsoft-Konto hinzufügen
  3. Geben Sie einen neuen Benutzernamen, ein neues Passwort und neue Sicherheitsfragen ein.

Um eine Verknüpfung zu erstellen, die PowerPoint als angegebener Benutzer startet, bearbeiten Sie die Eigenschaften der Verknüpfung, um einen Befehl wie den folgenden zu verwenden:

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

runasfordert den Benutzer zur Eingabe seines Passworts auf. /savecredspeichert das Passwort beim ersten Mal und verwendet anschließend das gespeicherte Passwort. Sie können jede Verknüpfung zunächstAusführen: Normales Fensterund ändern Sie es später inAusführen: Minimiert.

Diese Verknüpfungen können sich entweder auf dem Windows-Desktop oder in einem benutzerdefinierten Symbolleistenmenü befinden. Sobald PowerPoint ausgeführt wird, können Sie entweder von dort aus eine PPT-Datei öffnen oder eine Datei aus dem Datei-Explorer hineinziehen. Wenn Sie längere Zeit an einigen PPT-Dateien arbeiten, können Sie für jede Datei eine Verknüpfung erstellen und angeben, als welcher Benutzer sie ausgeführt werden soll.

Öffnen einer PowerPoint-Instanz aus einer PPT-Datei

Leider funktioniert das Ziehen einer PPT-Datei auf eine der oben beschriebenen Desktopverknüpfungen nicht, da dies runaserfordert, dass die gesamte PowerPoint-Befehlszeile in Anführungszeichen gesetzt wird. Verknüpfungen zum direkten Öffnen einer PPT-Datei erfordern ein Zwischenskript, um die Anführungszeichen zu sortieren. Erstellen Sie ein Skript wie „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\""

Erstellen Sie dann für jeden Benutzer eine Verknüpfung mit einem Befehl wie diesem:

C:\bin\PowerPoint_User.bat  user2

Wenn sich die Verknüpfung auf Ihrem Windows-Desktop befindet, können Sie eine PPT-Datei darauf ziehen. Wenn Sie die Verknüpfung in erstellen %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo, können Sie mit der rechten Maustaste auf eine PPT-Datei klicken und sie über das „Senden an"-Menü. Denken Sie in jedem Fall daran, dass bei jeder Verknüpfung bei der ersten Ausführung ein Kennwort abgefragt wird.

(Wenn Sie die Verknüpfung debuggen müssen, setzen Sie sie aufAusführen: Normales Fenster, cmd /kdem Befehl voranstellen und @echo offaus dem Skript entfernen.)

Antwort2

Excel verwendet dieselbe ausführbare Datei zum Öffnen von Tabellen, deshalb wechselt es den Desktop. Die Lösung besteht darin, eine zweiteBeispielvon Excel:

Gehen Sie zu Desktop 2:

  • Öffnen Sie das Startmenü und suchen Sie nach Excel
  • Drücken Sie ALT + Klicken Sie auf das Excel-Symbol
  • Drücken Sie „Ja“, wenn Sie gefragt werden: „Möchten Sie eine neue Excel-Instanz starten?“

Ich habe festgestellt, dass Excel beim Öffnen im Datei-Explorer nur die neueste Instanz zum Öffnen von Blättern verwendet, selbst wenn eine andere Instanz ausgewählt ist.

Als Workaround können Sie also, wenn Sie später ein weiteres Blatt auf Desktop 1 öffnen möchten, zu der Instanz auf diesem Desktop gehen (öffnen Sie eine neue, falls sie geschlossen ist) und dann auf „Datei -> Öffnen“ klicken, um in dieser Instanz ein neues Blatt zu öffnen.

Antwort3

Eine Lösung, mit der Sie Excel weiterhin in einer einzigen Instanz der ausführbaren Datei ausführen können (und somit weiterhin zwischen Arbeitsmappen kopieren und einfügen können), besteht darin, Excel so einzustellen, dass es auf allen Desktops angezeigt wird.

Windows 10:

  1. OffenAufgabenansicht(drücken Sie Win+Tab)
  2. Wählen (schwebenBewegen Sie den Mauszeiger über den virtuellen Desktop, auf dem Excel geöffnet ist.
  3. Klicken Sie mit der rechten Maustaste oder halten Sie das geöffnete Excel-Fenster gedrückt und klicken Sie aufFenster dieser App auf allen Desktops anzeigen.

Windows 11:

  1. Drücke denAufgabenansichtSymbol oder drücken Sie Win+TabSymbol „Aufgabenansicht“
  2. Klicken Sie mit der rechten Maustaste aufExcel-Fenster.
  3. WählenFenster dieser App auf allen Desktops anzeigen.

Antwort4

Ich bin gerade auf dieses Problem gestoßen und es scheint eine einfache Lösung zu geben. Ich verwende Windows 11. Wenn Sie die Apps und Fenster öffnen, die Sie verwenden möchten, beispielsweise auf 2 virtuellen Desktops, darunter 2 Excel-Tabellen, klicken Sie einfach einmal auf die Schaltfläche „Desktops“ in der Taskleiste. Dadurch wird ein Bildschirm angezeigt, auf dem alle geöffneten Fenster und unten alle Desktops angezeigt werden. Ziehen Sie einfach das gewünschte Excel-Fenster, beispielsweise Desktop 2, auf Desktop 2. Fertig!

verwandte Informationen