Fitur Windows 7 atau freeware untuk menjaga jendela selalu di bawah yang lain

8

Beberapa program misalnya GridMove dan XNeat memungkinkan pengguna untuk menjaga jendela yang diberikan di atas jendela lain menggunakan perintah "Selalu Di Atas". Apakah ada cara untuk melakukan kebalikan yaitu "Selalu Di Bawah" dengan perintah Windows 7 atau freeware untuk itu, kecuali dengan membuat semua jendela lain "Selalu Di Atas"?

Terkadang berguna untuk menjaga program obrolan (di mana pengetikan terjadi) di bawah semua jendela dengan hanya bidang pesan dan entri teks terbaru yang terlihat melalui celah jendela tanpa UI program obrolan lainnya mengacaukan ruang.

Gnubie
sumber
1
Tidak, tidak ada fitur bawaan di dalam Perpustakaan Win32 yang memungkinkan programmer untuk memaksa aplikasi ke latar belakang. Lebih logis memberitahu aplikasi lain untuk pergi ke foreground.
Ramhound
Sebagai alternatif, Anda dapat membuat jendela itu melihat melalui saya mengubah transparansi. (Banyak alat bisa melakukan ini). Atau Anda dapat menggunakan AutoHotkey untuk meminimalkannya ke baki. (Jika tidak membunuh tujuannya :-))
Ankit
1
Meskipun Win32 tidak mendukung ini, Anda dapat mengirim jendela tertentu ke latar belakang pada saat tertentu. Tapi saya tidak tahu apakah itu tetap fokus. Mungkin Anda bisa mencari cara untuk secara otomatis mengirim jendela ke belakang segera setelah kehilangan fokus. Alternatif lain adalah memasang jendela sehingga Anda tidak perlu khawatir tentang z-index ...
MarioDS

Jawaban:

1

Beberapa waktu yang lalu, Windows memiliki PowerToy (kemudian di TweakUI) yang disebut X-Mouse yang, antara lain, mendukung X gaya lama "fokus mengikuti mouse", di mana "fokus" dan "latar depan" bukan hal yang sama. Saya tidak percaya itu dipertahankan lagi (penampakan terakhir adalah untuk WinXP).

Meskipun saya belum menggunakannya secara luas, alat skrip Windows gratis AutoIT dapat melakukan apa yang Anda inginkan dengan skrip pendek:

#include <WinAPI.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>
#include <SendMessage.au3>

Local $hWnd,$flags,$regexp

Func MyExit() 
    MsgBox(0,"Drop Window","Quitting!",2) 
    Exit 0
EndFunc

$flags = BitOr($SWP_NOMOVE,$SWP_NOSIZE,$SWP_NOACTIVATE,$SWP_ASYNCWINDOWPOS,$SWP_NOSENDCHANGING) 

;; hot key to call exit: ALT + F11
HotKeySet("!{F11}","MyExit")

;; application window title
$regexp=".*Notepad$"

;; 10 second time out on first startup, 
$hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]", "", 10)
;; or wait forever
;$hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]")

If ($hWnd) Then
    ;; uncomment next line to maximize window first
    ;_SendMessage($hWnd,$WM_SYSCOMMAND,$SC_MAXIMIZE)

    _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $flags);

    While 1
        If WinWaitActive($hWnd,"",10) Then
            _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $flags);
        EndIf
        ;; check for new window
        $hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]","",1) 

        ;; uncomment next 3 lines to quit if no window
        ;if (NOT $hWnd) Then
        ;    MyExit()
        ;EndIf

        Sleep(250)
    Wend
Else
    MsgBox(0,"Drop Window","No window title matching /" & $regexp & "/") 
EndIf

"paling atas" adalah properti jendela persisten yang dipertahankan WM, tidak ada padanan "terbawah", jadi kita harus sedikit memperdayainya.

Loop Sementara menunggu aplikasi untuk mendapatkan latar depan, lalu menjatuhkannya kembali sambil menjaga fokus keyboard. Modal popup kadang-kadang dapat mengganggu ini, tetapi harus cukup bermanfaat. Skrip akan terus berjalan di latar belakang setelah program yang ditonton berakhir. Alt + F11 untuk keluar kapan saja.

Ubah $ regexp untuk mencocokkan "mIRC" atau apa pun. Di atas hanya andal akan menangani satu jendela pada suatu waktu. Baca dokumen AutoIT untuk WinWait () untuk melihat cara mencocokkan jendela selain dengan judul jendela.

Simpan ke dropwindow.au3 dan jalankan dengan "autoit3 dropwindow.au3".

http://www.autoitscript.com/site/autoit/downloads/

mr.spuratic
sumber
1

Jika Anda memiliki PC yang dilengkapi dengan ATI Radeon Graphic Card Anda dapat menggunakan HydraGrid dengan driver dan utilitas ATI terbaru, jika bukan Winsplit Revolution .

Climenole
sumber