pintasan keyboard di Windows 7 ke jendela tengah

18

Saya menemukan panah kiri-kiri dan panah kanan-menang sangat berguna di Windows 7 untuk membuat jendela mengambil masing-masing 50% dari sisi kiri atau kanan layar. Namun, apakah ada perintah yang akan membuat jendela mengambil 50% layar dan berada di tengah? Bahkan jika itu tidak menyesuaikan ukuran jendela, apakah ada cara pintas keyboard untuk membuat pusat jendela itu sendiri secara vertikal dan horizontal? Terima kasih.

Kapal Sarah
sumber

Jawaban:

3

Anda harus memeriksa Revolusi WinSplit ; ia memiliki apa yang Anda butuhkan dan dapat disesuaikan.

teks alternatif

Tamara Wijsman
sumber
Sepertinya dengan 3 klik tombol tengah di jendela WinSplit menyebabkan jendela fokus saya meregang dan mengisi seluruh ketinggian monitor, yang baik-baik saja, dan dipusatkan secara horizontal. :)
Sarah Vessels
13

Tombol panah Windows + cukup berguna di sini.

  • (Windows)+ ← (Left) dan + → (Right) putar terus ke kiri atau kanan 50% layar, dan pulihkan jendela ke ukuran dan posisi semula.
  • + ↑ (Up)memaksimalkan jendela.
  • + ↓ (Down) mengembalikan jendela jika dimaksimalkan, dan meminimalkannya sebaliknya.
wbeard52
sumber
2
Itu sepertinya tidak melakukannya untuk saya. Sepertinya itu meminimalkan jendela saya, atau mengembalikannya jika jendela dimaksimalkan.
Kapal Sarah
2
Di komputer saya, dual monitor, saya bisa mengklik Win-Left dan itu akan pergi ke kiri 50% pada layar itu. Jika saya terus mengklik Win-Kiri itu akan pergi ke kanan 50% di layar lain, selanjutnya akan di tengah dan akhirnya kiri di layar lainnya. Win-Right melakukan yang sebaliknya
wbeard52
1
Menang-Down jelas salah. Itu baik mengembalikan jendela dari dimaksimalkan atau menguranginya (jika sudah dipulihkan). Itu tidak akan melakukan apa pun pusat-y dengan jendela.
Joey
3
@ wbeard52: Saya baru saja mencoba Win-Left berulang kali dan berputar melalui 50% di sisi kiri layar, 50% di sisi kanan layar, dan bagaimana jendela saya awalnya (tidak di tengah, kecil).
Kapal Sarah
2
Menekan tombol Win-Left atau Win-Right secara berulang hanya dengan menempatkan jendela di sebelah kiri / kanan 50% dari monitor yang tersedia, lalu mengembalikannya ke posisi semula. Itu tidak memusatkan jendela dengan cara apa pun.
dgw
13

Ini bukan tepatnya untuk pemusatan, tetapi memungkinkan Anda memindahkan jendela ke kiri dan kanan (dan ke atas dan ke bawah) dengan mudah.

  1. Fokuskan jendela.
  2. Tekan Alt+ Space.
  3. Tekan M(untuk "Bergerak").
  4. Gunakan tombol panah untuk memindahkan jendela tepat di tempat yang Anda inginkan.
  5. Tekan Entersaat selesai.
ddinchev
sumber
1
Solusi ini tidak memerlukan perangkat lunak tambahan untuk diinstal. Ini mungkin bukan solusi yang tepat, tapi saya pikir itu sudah cukup untuk menyelesaikan pekerjaan
afuzzyllama
Ini hanya berfungsi jika jendela tidak dimaksimalkan.
TylerH
@ TylerH: itu benar. Namun, itu hanya mengharuskan Anda untuk menekan windows + kanan (untuk menempatkan jendela di posisi kanan 50%), dan kemudian ikuti instruksi dalam jawaban ini untuk memindahkannya ke kiri.
Rasmus Larsen
5

Saya akan menyarankan menggunakan AutoHotkey .
Contoh skrip yang melakukan persis apa yang Anda tanyakan sudah disediakan dalam jawaban untuk pertanyaan lain .
Berikut kode skripnya:

#!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
}

Saya membuat sedikit penyesuaian sehingga bagian bawah jendela tidak masuk di bawah bilah tugas, dan mengubah windowWidth0,7 menjadi 0,5.

Sunting : sekarang bekerja dengan beberapa monitor, dan menggunakan area kerja untuk nilai atas dan bawah.

Di samping catatan, Revolusi WinSplit telah dihentikan dan digantikan oleh aplikasi berbayar yang disebut MaxTo.
Selain sangat kuat dan mencakup lebih banyak kasus penggunaan, AutoHotkey juga gratis dan open source.

vctls
sumber
1
Hampir hebat ... Kecuali untuk satu masalah serius. Dengan beberapa monitor yang diperluas, ini selalu memindahkan jendela dari monitor sekunder ke monitor utama. Ada ide tentang cara memperbaikinya? WinMove sepertinya tidak memiliki parameter tambahan.
DKroot
@Droot saya harus mencoba dengan layar kedua. Saya hanya menggunakan ini pada satu ultrawide. Inilah yang dikatakan dokumen di WinMove: «Nilai negatif diperbolehkan untuk koordinat x dan y untuk mendukung sistem multi-monitor dan untuk memungkinkan jendela dipindahkan sepenuhnya dari layar.» Ada contoh skrip multi-monitor di forum, tetapi semakin rumit: autohotkey.com/board/topic/…
vctls
Terima kasih banyak untuk tautannya! Saya dapat menggabungkan skrip Anda dan skrip yang ditautkan menjadi satu yang berfungsi dengan baik. (Skrip yang ditautkan tidak mengubah ukuran karenanya tidak berfungsi misalnya pada jendela yang dimaksimalkan). Script terlalu panjang untuk dimasukkan dalam komentar. Apakah Anda keberatan saya mempostingnya sebagai jawaban terpisah?
DKroot
Catatan pengujian lain pada skrip Anda: yang menarik, dalam pengaturan dengan 3 monitor, misalnya # 1 utama, # 2 dan # 3 berfungsi dengan baik pada # 1 dan # 3, tetapi memindahkan jendela dari # 2 ke # 1.
DKroot
1
Hah, itu aneh. Saya memperbaruinya agar berfungsi pada beberapa monitor. Saya mencoba untuk membuatnya sesingkat dan pada topik mungkin, tetapi Anda mungkin ingin pergi untuk Edisi Deluxe seperti yang ada di forum;)
vctls