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/
foreground
.