Tính năng hoặc phần mềm miễn phí của Windows 7 để giữ một cửa sổ luôn bên dưới các cửa sổ khác


8

Một số chương trình, ví dụ như GridMove và XNeat cho phép người dùng giữ một cửa sổ nhất định phía trên các cửa sổ khác bằng cách sử dụng lệnh "Luôn luôn trên đỉnh". Có cách nào để thực hiện ngược lại tức là "Luôn luôn ở dưới cùng" với bất kỳ lệnh Windows 7 hoặc phần mềm miễn phí nào cho nó, ngoại trừ bằng cách làm cho tất cả các cửa sổ khác "Luôn ở trên cùng" không?

Đôi khi rất hữu ích để giữ các chương trình trò chuyện (xảy ra gõ) bên dưới tất cả các cửa sổ chỉ có trường nhập tin nhắn và văn bản mới nhất hiển thị qua các khoảng trống của cửa sổ mà không có phần còn lại của giao diện người dùng trò chuyện làm lộn xộn không gian.


1
Không, không có tính năng tích hợp nào trong Thư viện Win32 cho phép lập trình viên buộc ứng dụng chạy nền. Nó là hợp lý hơn nói với các ứng dụng khác để đi đến foreground.
Ramhound

Để thay thế, bạn có thể làm cho cửa sổ đó nhìn xuyên qua sự thay đổi độ trong suốt của nó (nhiều công cụ có thể làm điều này). Hoặc bạn có thể sử dụng AutoHotkey để thu nhỏ nó vào khay. (Nếu nó không giết được mục đích :-))
Ankit

1
Mặc dù Win32 không hỗ trợ điều này, nhưng bạn có thể gửi một cửa sổ cụ thể đến nền bất kỳ lúc nào. Tôi không biết nếu nó giữ tập trung sau đó, mặc dù. Có lẽ bạn có thể tìm cách để tự động gửi cửa sổ ra phía sau ngay khi nó mất tiêu điểm. Một cách khác là ốp lát các cửa sổ, do đó bạn không nên lo lắng về chỉ số z ...
MarioDS

Câu trả lời:


1

Cách đây rất lâu, Windows có một PowerToy (sau này là TweakUI) được gọi là X-Mouse, trong số những thứ khác, hỗ trợ kiểu X cũ "lấy nét theo chuột", trong đó "tiêu điểm" và "tiền cảnh" không giống nhau. Tôi không tin rằng nó được duy trì nữa (lần cuối cùng là dành cho WinXP).

Mặc dù tôi chưa sử dụng rộng rãi, công cụ kịch bản Windows miễn phí AutoIT có thể làm những gì bạn muốn với một tập lệnh ngắn:

#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

"trên cùng" là một thuộc tính cửa sổ liên tục mà WM duy trì, không có "phần dưới cùng" tương đương, vì vậy chúng ta phải làm mờ nó đi một chút.

Vòng lặp While chờ ứng dụng lấy tiền cảnh, sau đó thả nó xuống một lần nữa trong khi vẫn giữ tiêu điểm bàn phím. Cửa sổ bật lên phương thức đôi khi có thể can thiệp vào điều này, nhưng nó hoàn toàn có thể sử dụng được. Kịch bản sẽ tiếp tục chạy trong nền sau khi chương trình đã xem kết thúc. Alt + F11 để thoát nó bất cứ lúc nào.

Thay đổi $ regrec để khớp với "mIRC" hoặc bất cứ điều gì. Ở trên sẽ chỉ đáng tin cậy xử lý một cửa sổ tại một thời điểm. Đọc tài liệu AutoIT cho WinWait () để xem cách khớp các cửa sổ khác với tiêu đề cửa sổ.

Lưu vào dropwindow.au3 và chạy nó với "autoit3 dropwindow.au3".

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


1

Nếu bạn có PC được trang bị Thẻ đồ họa ATI Radeon, bạn có thể sử dụng HydraGrid với trình điều khiển và tiện ích ATI mới nhất, nếu không phải là Winsplit Revolution .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.