web-dev-qa-db-ja.com

画面の端に移動したときにウィンドウを全画面に最大化するWindows7の機能を無効にするにはどうすればよいですか(ただし、キーボードショートカットは機能し続けます)。

私はこのアドバイスに従いました: 画面の端に近いときにウィンドウの自動最大化/サイズ変更(エアロスナップ)を無効にする方法は?

ただし、を押すと機能がオフになります WinKeyLeft/Right Arrow、ウィンドウを画面の半分の矢印キーの方向に合わせます。

それらを独立して制御する方法はありますか?

10
Joan Venge

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を実行している)で機能させる唯一の方法であるため、ドキュメントにエラーがあると思われます。

3
gitbox

私は過去にこれを探しましたが、Windows自体でこれを行う方法はないと思います。ただし、サードパーティの代替手段があります。まず、質問のリンクに従ってエアロスナップを無効にします。次に、 WindowsPad (特別な AutoHotkey スクリプトセットアップ)を使用して、マルチモニターセットアップで画面間を移動するウィンドウを復元したり、左右のスナップを使用したりできます(上ボトム、ミドル、コーナースナップ)。デフォルトでは、WindowsPadは WinNumPad キー(機能が追加されているため)ですが、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のコーナースナップ機能とボトムスナップ機能のデモ:

WindowsPad Demo

2
techturtle

あなたは試すことができます 私のウィンドウズツールコレクション 。以下は、ウィンドウを移動するためのホットキーです。

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

2
Codism

次のレジストリ編集は達成します正確に尋ねられたもの

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"DockMoving"="0"
"SnapSizing"="0"

(これを.regファイルとして保存して実行できます。再起動または再ログオンが必要です。)

事実上、これらは設定される2つの設定であり、@ gitboxの回答のコードを実行します。

Windows7-10で動作します。

2
Duke Nukem

これはレジストリで行うことができます。

  1. Regedit.exeを開きます
  2. HKEY_CURRENT_USER \Control Panel\Desktopに移動します
  3. フィールドWindowArrangementActiveをダブルクリックして選択します
  4. 値を0に設定します
  5. 再起動(ログオフと再オンが機能する場合があります)

ここから見つかりました http://www.technorms.com/33660/how-to-disable-the-windows-snap-feature

0
grgrssll