Windowsの大きな新機能の1つは、複数の「仮想」デスクトップがネイティブにサポートされるようになったことです。これにより、ウィンドウの集まりをまとめてタスクのグループを分けることができます。
これはいい。
「タスク」ボタンをクリックしてからアプリケーションウィンドウを右クリックし、「移動...」を選択すると、デスクトップ間でウィンドウを移動できます。
これは少し不格好で、それほど良くはありません。
私は2つのモニタを持っていて、メインスクリーンにブラウザと他のいくつかのアプリケーションを持っている間、私のセカンドモニタでウェブブラウザかメディアプレイヤーのどちらかで映画を再生したいです。これを行っても私の現在の設定では問題になりません、ただうまくいくだけです。
仮想デスクトップの出現で、私はブラウザをある仮想デスクトップと別のアプリケーションに別の仮想デスクトップに置いても、デスクトップを切り替えてもビデオを見ることができるようにしたいと思っていました。両方の仮想デスクトップ。デフォルトのFilm&TVアプリを使ってビデオを再生してから別のデスクトップに移動すると、警告なしにビデオが停止するだけです。
これは良くない。
私が願っていたのは、2台のモニタがそれぞれ独自の仮想デスクトップを持つか、Linuxベースの多くのウィンドウマネージャで見た「スティッキーウィンドウ」機能に似た「すべてのデスクトップに固定」オプションであることです。
これを達成するためのいくつかの方法はありますか?
この機能は、 Windows 10 Anniversary Update (Build 14316)のいくつかの 「仮想デスクトップの改良」 の1つとしてリリースされました。
すべてのデスクトップで利用できるようにウィンドウを固定することができます。これを行うには、タスクビューを起動し、固定したいウィンドウを右クリックして[すべてのデスクトップにこのウィンドウを表示]を選択します。 SkypeまたはGroove Musicを固定して、それらが常にあなたの指先にあるようにしてください。また、マルチモン設定の場合は、どのデスクトップに切り替えても、電子メールアプリをセカンドモニタに表示できます。
うん[ほぼ:)] WS_EX_TOOLWINDOW属性を持つすべてのウィンドウはすべてのデスクトップに表示されます。
オートキーはこれに非常に役立ちます。サンプルスクリプト - MyLoop.ahk:
WS_EX_TOOLWINDOW:= 0x00000080 ループ { WinSet、ExStyle、+%WS_EX_TOOLWINDOW%、ahk_class Chrome_WidgetWin_1 スリープ、100 }
これをwindowsの起動時に入れると、Google Chromeのウィンドウはすべての仮想デスクトップに固定されます。
または、これをホットキーとして割り当てます。サンプルスクリプト - MyHotkeys.ahk:
WS_EX_TOOLWINDOW:= 0x00000080 + MButton :: WinSet、ExStyle、^%WS_EX_TOOLWINDOW%、A ^ MButton :: WinSet、AlwaysOnTop、Aトグル、A
これをWindowsの起動時に設定すれば、Shiftキーを押しながら中央ボタンをクリックして、どのウィンドウでも「スティッキー」状態に切り替えることができます。
追加キー - Ctrl +中ボタンをクリックすると「最上位」の状態に切り替わります。とても便利です。
シモンズ:近代的なアプリケーション(例:windows 10 Calculator)はどういうわけかこれを無視します。理由がわからない。しかし、Windowsエクスプローラウィンドウとほとんどの「古いアプリケーション」の場合 - それは大丈夫です
上記の@idjソリューションに基づいて、これはCでそれを行う方法です:
exstyle = GetWindowLongPtr(hwndPtr, GWL_EXSTYLE);
exstyle |= WS_EX_TOOLWINDOW
SetWindowLongPtr(hwndPtr, GWL_EXSTYLE, exstyle);