Windows 7の中央のウィンドウへのキーボードショートカット


18

Windows 7では、Win-left矢印とWin-right矢印がそれぞれ、画面の左側または右側の50%を占めるようにするのに非常に役立ちます。ただし、ウィンドウが画面の50%を占めて中央に配置されるコマンドはありますか?ウィンドウのサイズを調整しなくても、ウィンドウ自体を垂直および水平に中央に配置するためのキーボードショートカットはありますか?ありがとう。

回答:


3

WinSplit Revolutionをご覧ください。必要なものが揃っており、カスタマイズ可能です。

代替テキスト


WinSplitのウィンドウで中央のボタンを3回クリックすると、フォーカスされたウィンドウが伸びてモニターの高さ全体に広がり、水平に中央揃えされます。:)
サラ船

13

ここでは、Windows +矢印キーが非常に便利です。

  • (Windows)+ ← (Left) および+ → (Right) は、画面の左または右に50%移動し、ウィンドウを元のサイズと位置に復元します。
  • + ↑ (Up)ウィンドウを最大化します。
  • + ↓ (Down) ウィンドウが最大化されている場合は復元し、そうでない場合は最小化します。

2
それは私のためにそれをするように思われませんでした。ウィンドウが最小化されているように見えますが、ウィンドウが最大化されている場合は復元されます。
サラ船

2
マシンのデュアルモニターで、Win-Leftをクリックすると、その画面の左50%に移動します。Win-Leftをクリックし続けると、他の画面で右に50%移動し、次に中央に移動して、最後に他の画面に移動します。Win-Rightは反対のことを行います
wbeard52

1
勝利は間違いです。ウィンドウを最大化から復元するか、ウィンドウを最小化します(既に復元されている場合)。ウィンドウの中心には何もしません。
ジョーイ

3
@ wbeard52:Win-Leftを繰り返し試してみましたが、画面の左側で50%、画面の右側で50%、およびウィンドウの元の状態(中央ではなく、小さい)を循環しました。
サラ船

2
Win-LeftまたはWin-Rightを繰り返し押すと、使用可能なモニターの50%の左/右にウィンドウが配置され、前の位置に戻ります。ウィンドウは中央に配置されません。
dgw

13

これは正確にセンタリングするためのものではありませんが、ウィンドウを簡単に左右に(および上下に)移動できます。

  1. ウィンドウに焦点を合わせます。
  2. Alt+を押しSpaceます。
  3. M(「移動」の場合)を押します。
  4. 矢印キーを使用して、ウィンドウを目的の場所に正確に移動します。
  5. Enter完了したら押します。

1
このソリューションでは、追加のソフトウェアをインストールする必要はありません。それは正確な解決策ではないかもしれませんが、仕事を
成し遂げる

これは、ウィンドウが最大化されていない場合にのみ機能します。
タイラーH

@TylerH:それは本当です。しかし、それだけで(50%正しい位置にある場所のウィンドウに)右を押してウィンドウ+にあなたを必要とし、その後、その左に移動するために、この答えの指示に従ってください。
ラスマスラーセン

5

AutoHotkeyを使用することをお勧めします。
あなたがしたことを正確にするスクリプトの例はすでに別の質問への回答で提供されまし
スクリプトのコードは次のとおりです。

#!Up::CenterActiveWindow() ; if win+alt+↑ is pressed

CenterActiveWindow()
{
    ; Get the window handle from de active window.
    winHandle := WinExist("A")

    VarSetCapacity(monitorInfo, 40)
    NumPut(40, monitorInfo)

    ; Get the current monitor from the active window handle.
    monitorHandle := DllCall("MonitorFromWindow", "uint", winHandle, "uint", 0x2)
    DllCall("GetMonitorInfo", "uint", monitorHandle, "uint", &monitorInfo) 

    ; Get WorkArea bounding coordinates of the current monitor.
    A_Left   := NumGet(monitorInfo, 20, "Int")
    A_Top    := NumGet(monitorInfo, 24, "Int")
    A_Right  := NumGet(monitorInfo, 28, "Int")
    A_Bottom := NumGet(monitorInfo, 32, "Int")

    ; Calculate window coordinates.
    winW := (A_Right - A_Left) * 0.5 ; Change the factor here to your desired width.
    winH := A_Bottom
    winX := A_Left + (winW / 2)
    winY := A_Top

    WinMove, A,, winX, winY, winW, winH
}

ウィンドウの下部がタスクバーの下に入らないように微調整しwindowWidth、0.7から0.5に変更しました。

編集:複数のモニターで動作するようになり、上部と下部の値に作業領域を使用します。

ちなみに、WinSplit Revolutionは廃止され、MaxToという有料アプリに置き換えられました。
AutoHotkeyは非常に強力であり、さらに多くのユースケースに対応していることに加えて、無料でオープンソースです。


1
ほぼ素晴らしい... 1つの深刻な問題を除いて。複数の拡張モニターの場合、これによりウィンドウは常にセカンダリモニターからメインモニターに移動します。これを修正する方法についてのアイデアはありますか?WinMoveには追加のパラメーターはないようです。
DKroot

@DKroot 2番目の画面で試す必要があります。私はこれを単一のウルトラワイドでしか使っていません。WinMoveでのドキュメントの内容は次のとおりです。«xおよびy座標に負の値を使用して、マルチモニターシステムをサポートし、ウィンドウを完全に画面外に移動できます。»フォーラムにはマルチモニタースクリプトの例があります。しかし、より複雑になります:autohotkey.com/board/topic/…–
vctls

リンクをありがとうございます!あなたのスクリプトとリンクされたスクリプトを完璧に機能するものにまとめることができました。(リンクされたスクリプトはサイズを変更しないため、最大化されたウィンドウなどでは機能しません)。スクリプトが長すぎてコメントに含めることができません。別の回答として投稿しても構いませんか?
DKroot

スクリプトに関する別のテストノート:興味深いことに、3台のモニター、たとえば#1メイン、#2、#3のセットアップでは、#1と#3で正常に動作しますが、ウィンドウを#2から#1に移動します。
DKroot

1
ええ、それは奇妙です。複数のモニターで動作するように更新しました。私はそれをできるだけ短く、話題にしようとしましたが、フォーラムのもののようなデラックス版に行きたいかもしれません;)
vctls

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.