私はこのアドバイスに従いました: 画面の端に近いときにウィンドウの自動最大化/サイズ変更(エアロスナップ)を無効にする方法は?
ただし、を押すと機能がオフになります WinKey + Left/Right Arrow、ウィンドウを画面の半分の矢印キーの方向に合わせます。
それらを独立して制御する方法はありますか?
GUIを介してこれを行う方法はないかもしれませんが、プログラムでそれを実行する方法はあります。
必要な関数は SystemParametersInfo です。完全な機能が必要な場合はMSDNで読むことができますが(不条理な数の設定にアクセスできます)、_SPI_SETDOCKMOVING
_と_SPI_SETSNAPSIZING
_に興味があります。
_SPI_SETDOCKMOVING
_は、ウィンドウをタイトルバーでドラッグすることにより、ウィンドウをスナップする機能を切り替えます。このようにオフにすることができます:
SystemParametersInfo(SPI_SETDOCKMOVING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)
_SPI_SETSNAPSIZING
_は、ウィンドウの上部と下部の境界線を使用してウィンドウのサイズを変更することにより、ウィンドウをスナップする機能を切り替えます。このようにオフにすることができます:
SystemParametersInfo(SPI_SETSNAPSIZING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)
どちらかをオンに戻すには、2番目の引数にゼロ以外の番号を使用して同じ呼び出しを行います。再起動後に変更が保持されないようにするには、最後の引数からSPIF_UPDATEINIFILEフラグを削除します。
キーボードショートカットを確実に維持するには、コントロールパネルまたはレジストリでAeroSnapをオフにしないでください。
勤勉な人は、ここで提供された議論が、ドキュメントから期待されるものではないことに気付くかもしれません。具体的には、pvParamとuiParamsが切り替えられます。これは、この関数を自分のマシン(Windows 8.1を実行している)で機能させる唯一の方法であるため、ドキュメントにエラーがあると思われます。
私は過去にこれを探しましたが、Windows自体でこれを行う方法はないと思います。ただし、サードパーティの代替手段があります。まず、質問のリンクに従ってエアロスナップを無効にします。次に、 WindowsPad (特別な AutoHotkey スクリプトセットアップ)を使用して、マルチモニターセットアップで画面間を移動するウィンドウを復元したり、左右のスナップを使用したりできます(上ボトム、ミドル、コーナースナップ)。デフォルトでは、WindowsPadは Win + NumPad キー(機能が追加されているため)ですが、WindowsPad.iniファイルの[Hotkeys]
セクションに以下を追加することで、エアロスナップのような矢印キー機能を追加できます。
#+ Left = WindowScreenMove、Next #+ Right = WindowScreenMove、Prev #Left = WPM、-1、0、0.5、1.0 #Right = WPM、+ 1、0、0.5、1.0 #Up = MaximizeToggle #Down = Restore
残念ながら、画面の50%にスナップしてから、元の位置に戻す機能は失われます(Aeroスナップを使用せずに実際にウィンドウのサイズを変更しているため)。しかし、これまでのところ、それが私が見つけた唯一の欠点です。
WindowsPadのコーナースナップ機能とボトムスナップ機能のデモ:
あなたは試すことができます 私のウィンドウズツールコレクション 。以下は、ウィンドウを移動するためのホットキーです。
Win+Array: Move the active window based on other visible windows. This allows for fast window alignment.
Shift+Win+Array: Move the left-up corner of the active window.
Alt+Win+Array: Move the right-bottom corner of the active window.
Ctrl+Win+Array: Dock the active window
Alt+F9: Minimize the active window
Alt+F10: Toggle maximize the active window
2015年6月
Googleコードが廃止されているため、コードを github に移動しました。 wikiページにはいくつかのヘルプ情報があります: rwin wiki
次のレジストリ編集は達成します正確に尋ねられたもの:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"DockMoving"="0"
"SnapSizing"="0"
(これを.regファイルとして保存して実行できます。再起動または再ログオンが必要です。)
事実上、これらは設定される2つの設定であり、@ gitboxの回答のコードを実行します。
Windows7-10で動作します。
これはレジストリで行うことができます。
HKEY_CURRENT_USER \Control Panel\Desktop
に移動しますWindowArrangementActive
をダブルクリックして選択します0
に設定しますここから見つかりました http://www.technorms.com/33660/how-to-disable-the-windows-snap-feature