Sematkan aplikasi ke beberapa desktop di Windows 10

73

Salah satu fitur besar baru untuk Windows adalah kenyataan bahwa beberapa desktop "virtual" sekarang didukung secara native, memungkinkan Anda untuk mengatur koleksi windows bersama dan memisahkan kelompok tugas.

Ini bagus.

Anda dapat memindahkan jendela di antara desktop dengan mengklik tombol "tugas" dan kemudian mengklik kanan jendela aplikasi dan memilih "Pindah ke ..."

Ini agak kikuk dan tidak begitu baik.

Saya memiliki dua monitor dan sering ingin film diputar di monitor kedua saya, baik di browser web atau pemutar media, sementara saya memiliki browser dan beberapa aplikasi lain di layar utama. Melakukan ini bukan masalah di pengaturan saya saat ini, itu hanya berfungsi.

Dengan munculnya desktop virtual saya ingin menempatkan browser di satu desktop virtual dan aplikasi lain di desktop virtual lain dan masih dapat menonton video ketika saya beralih desktop, secara efektif membuatnya terlihat di kedua desktop virtual. Menggunakan aplikasi Film & TV default untuk memutar video dan kemudian pindah ke desktop lain hanya menghasilkan video Anda berhenti tanpa peringatan.

Ini tidak bagus.

Apa yang saya harapkan adalah bahwa kedua monitor akan memiliki desktop virtual sendiri atau pilihan "pin to all desktop" yang mirip dengan fitur "sticky window" yang telah saya lihat di banyak window manager berbasis Linux.

Apakah ada cara untuk mencapai ini?

Mokubai
sumber
Bukan yang saya tahu, meskipun saya memiliki pengalaman dengan beberapa sistem menggunakan ruang kerja (sistem linux yang berbeda) tidak ada yang pernah memiliki fitur ini, yang memecah konsep memiliki beberapa tempat kerja.
Daniel
2
@Daniel Saya sudah bicara dengan beberapa orang dan mereka menyebutnya "jendela lengket"
Mokubai
2
@ Psychogeek Saya mengacu pada kedua monitor dan desktop virtual, sisi multi-monitor baik-baik saja. Saya dapat membuka video, meletakkannya di layar kedua dan semuanya baik-baik saja, tetapi jika saya beralih ke desktop lain menggunakan fitur desktop virtual baru, jendela video menghilang dan (dalam beberapa kasus) berhenti diputar seluruhnya. Saya ingin memiliki beberapa cara untuk menyematkan jendela ke beberapa desktop virtual.
Mokubai
Mengerti, banyak program desktop Virtual memiliki fitur itu, di mana Anda akan menetapkan program untuk virtual tertentu, banyak masalah kereta kecil masih ada tergantung pada metode.
Psycogeek
6
Saya pikir contoh standar yang cukup untuk kebutuhan ini adalah hampir semua aplikasi komunikasi. Saya ingin menggunakan desktop virtual terpisah untuk proyek yang berbeda yang sedang saya kerjakan, tetapi saya ingin menyematkan / menempelkan klien IM dan email. Sepertinya kasus penggunaan yang cukup standar bagi saya bahwa saya mungkin ingin memisahkan ruang kerja saya tanpa harus menukar desktop hanya untuk mendapatkan peringatan email!
Colin K

Jawaban:

100

Fitur ini sekarang telah dirilis sebagai salah satu dari beberapa "Peningkatan Desktop Virtual" di Pembaruan Ulang Tahun Windows 10 (Build 14316):

Anda sekarang dapat menyematkan jendela sehingga tersedia di setiap desktop. Untuk melakukan ini, luncurkan Tugas Lihat kemudian klik kanan pada jendela yang ingin Anda pin dan pilih "Tampilkan jendela ini di semua desktop". Cobalah menyematkan Skype atau Groove Music sehingga selalu ada di ujung jari Anda. Dan jika Anda memiliki pengaturan multi-mon, Anda mungkin dapat menikmati aplikasi email pada monitor kedua tidak peduli desktop mana yang Anda gunakan.

masukkan deskripsi gambar di sini

Daniel Ballinger
sumber
Postingan berbicara tentang tersedia di Windows Insider Fast Ring, apakah Anda punya waktu kapan ini akan turun untuk pengguna normal?
Mokubai
1
@Mokubai Sejauh yang saya tahu belum ada tanggal rilis publik yang tegas. Hanya samar-samar "Musim Panas [Belahan Bumi Utara] ini".
Daniel Ballinger
tetapi bagaimana Anda melepaskan sematan itu?
Mikey
@Mikey Tidak menandai opsi "Tampilkan X di semua desktop" tidak berfungsi untuk Anda?
Daniel Ballinger
Bekerja pada windows saya bisa mengklik, masalahnya adalah ketika mereka tidak terlihat dalam tampilan tugas. Tentu saja itu terlihat sebelum ketika saya menyalakannya, tapi sekarang setiap kali masuk ke tampilan tugas jendela menghilang .. Jadi apa cara lain untuk menonaktifkannya? Apakah ada kunci reg? Saat ini saya mengalami masalah dengan telegram yang menurut saya adalah QT (aplikasi lintas platform). Hanya untuk memperjelas jendela terlihat di semua desktop, tetapi menghilang ketika saya memasuki tampilan tugas
Mikey
18

Ya. [hampir :)] Setiap jendela dengan atribut WS_EX_TOOLWINDOW terlihat di semua desktop.

Autohotkey sangat membantu dalam hal ini. Contoh skrip - MyLoop.ahk:

WS_EX_TOOLWINDOW: = 0x00000080
Loop
{
   WinSet, ExStyle, +% WS_EX_TOOLWINDOW%, ahk_class Chrome_WidgetWin_1
   Tidur, 100
}

Masukkan ini di startup windows dan Google Chrome window akan "menempel" ke semua desktop virtual.

Atau tetapkan ini sebagai hotkey: Contoh script - MyHotkeys.ahk:

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

Letakkan ini di windows startup dan Anda dapat TOGGLE "sticky" state untuk jendela apa pun dengan menekan Shift + tombol tengah klik di atasnya.

Tombol Penambahan - Ctrl + klik tombol tengah akan beralih negara "paling atas". Sangat berguna.

PS: aplikasi modern (mis. Kalkulator windows 10) entah bagaimana mengabaikannya. Tidak tahu kenapa Tetapi untuk windows explorer window dan sebagian besar 'aplikasi lama' - ini berfungsi dengan baik

IDj
sumber
Saya mencoba skrip untuk klik tengah + hotkey. Tombol Ctrl + tengah bekerja dengan baik. Namun, saya tidak bisa menjalankan lintas desktop virtual agar berfungsi. Tidak ada jendela yang saya coba pada transisi.
Daniel Ballinger
Bekerja untukku. Dalam kasus saya, saya ingin selalu mengaturnya untuk ditampilkan, jadi ganti tanda sisipan ( ^) dengan tanda tambah ( +).
ohaal
1

Berdasarkan solusi @idj di atas, ini adalah bagaimana melakukannya di C:

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