Anheften von Anwendungen an mehrere Desktops in Windows 10

Anheften von Anwendungen an mehrere Desktops in Windows 10

Eine der wichtigsten neuen Funktionen von Windows ist die Tatsache, dass jetzt mehrere „virtuelle“ Desktops nativ unterstützt werden, sodass Sie Fenstersammlungen gemeinsam organisieren und Aufgabengruppen trennen können.

Das ist gut.

Sie können Fenster zwischen Desktops verschieben, indem Sie auf die Schaltfläche „Aufgaben“ klicken, dann mit der rechten Maustaste auf ein Anwendungsfenster klicken und „Verschieben nach ...“ auswählen.

Das ist etwas klobig und nicht ganz so gut.

Ich habe zwei Monitore und möchte oft einen Film auf meinem zweiten Monitor abspielen, entweder in einem Webbrowser oder einem Media Player, während ich auf dem Hauptbildschirm einen Browser und einige andere Anwendungen habe. Dies ist in meiner aktuellen Konfiguration kein Problem, es funktioniert einfach.

Mit dem Aufkommen virtueller Desktops wollte ich den Browser auf einem virtuellen Desktop und eine andere App auf einem anderen virtuellen Desktop platzieren und trotzdem das Video ansehen können, wenn ich den Desktop wechsle, sodass es effektiv aufbeidevirtuelle Desktops. Wenn Sie die standardmäßige Film- und Fernseh-App zum Abspielen eines Videos verwenden und dann zu einem anderen Desktop wechseln, wird das Video einfach ohne Vorwarnung gestoppt.

Das ist nicht gut.

Ich hatte gehofft, dass entweder die beiden Monitore ihren eigenen virtuellen Desktop hätten oder dass es eine Option zum „An alle Desktops anheften“ gäbe, ähnlich der „Sticky Window“-Funktion, die ich in vielen Linux-basierten Fenstermanagern gesehen habe.

Gibt es eine Möglichkeit, dies zu erreichen?

Antwort1

Die Funktion wurde nun als eine von mehreren veröffentlicht„Verbesserungen am virtuellen Desktop“imWindows 10 Anniversary Update(Version 14316):

Sie können jetzt ein Fenster anheften, sodass es auf jedem Desktop verfügbar ist. Starten Sie dazu die Taskansicht, klicken Sie mit der rechten Maustaste auf das Fenster, das Sie anheften möchten, und wählen Sie „Dieses Fenster auf allen Desktops anzeigen“. Versuchen Sie, Skype oder Groove Music anzuheften, damit Sie sie immer zur Hand haben. Und wenn Sie ein Multi-Monitor-Setup haben, können Sie Ihre E-Mail-App auf dem zweiten Monitor haben, egal zu welchem ​​Desktop Sie wechseln.

Bildbeschreibung hier eingeben

Antwort2

Japp. [fast :)] Jedes Fenster mit dem Attribut WS_EX_TOOLWINDOW ist auf allen Desktops sichtbar.

Autohotkey ist dabei eine große Hilfe. Beispielskript - MyLoop.ahk:

WS_EX_TOOLWINDOW := 0x00000080
Schleife
{
   WinSet, ExStyle, +%WS_EX_TOOLWINDOW%, ahk_class Chrome_WidgetWin_1
   Schlaf,100
}

Fügen Sie dies in den Windows-Start ein, und das Google Chrome-Fenster bleibt an allen virtuellen Desktops „haften“.

Oder weisen Sie dies als Hotkey zu: Beispielskript – MyHotkeys.ahk:

WS_EX_TOOLWINDOW := 0x00000080
+MButton::WinSet, ExStyle, ^%WS_EX_TOOLWINDOW%, A
^MButton::WinSet, AlwaysOnTop, umschalten, A

Fügen Sie dies in den Windows-Start ein und Sie können den „Sticky“-Status für jedes Fenster umschalten, indem Sie die Umschalttaste drücken und mit der mittleren Taste darauf klicken.

Zusätzliche Taste - Strg+Klick auf die mittlere Taste schaltet den „obersten“ Status um. Sehr nützlich.

PS: Moderne Anwendungen (z. B. Windows 10-Rechner) ignorieren dies irgendwie. Ich weiß nicht, warum. Aber für das Windows Explorer-Fenster und die meisten „alten Anwendungen“ funktioniert es einwandfrei

Antwort3

Basierend auf der obigen @idj-Lösung geht es in C folgendermaßen:

exstyle = GetWindowLongPtr(hwndPtr, GWL_EXSTYLE);
exstyle |= WS_EX_TOOLWINDOW
SetWindowLongPtr(hwndPtr, GWL_EXSTYLE, exstyle);

verwandte Informationen