เมื่อนานมาแล้ว Windows มี PowerToy (ต่อมาใน TweakUI) ที่เรียกว่า X-Mouse ซึ่งเหนือสิ่งอื่นใดการสนับสนุน X "การโฟกัสแบบเก่าตามด้วยเมาส์" ซึ่ง "โฟกัส" และ "เบื้องหน้า" นั้นไม่ใช่สิ่งเดียวกัน ฉันไม่เชื่อว่ามันจะได้รับการปรับปรุงอีกต่อไป (การพบเห็นครั้งสุดท้ายสำหรับ WinXP)
แต่ผมไม่ได้ใช้มันอย่างกว้างขวางฟรีเครื่องมือ Windows สคริปต์AutoITสามารถทำสิ่งที่คุณต้องการกับสคริปต์สั้น:
#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
"topmost" เป็นคุณสมบัติของหน้าต่างแบบถาวรที่ WM รักษาไว้ไม่มี "ล่างสุด" เทียบเท่าดังนั้นเราจึงต้องทำให้เหลวไหลเล็กน้อย
ขณะที่ลูปรอให้แอปพลิเคชันรับส่วนหน้าจากนั้นปล่อยอีกครั้งในขณะที่ยังคงโฟกัสของแป้นพิมพ์ บางครั้งป๊อปอัปของ Modal อาจรบกวนสิ่งนี้ แต่ควรจะใช้งานได้ค่อนข้างสคริปต์จะยังคงทำงานในพื้นหลังหลังจากที่โปรแกรมที่รับชมสิ้นสุดลง Alt + F11 เพื่อออกเมื่อใดก็ได้
เปลี่ยน $ regexp เพื่อให้ตรงกับ "mIRC" หรืออะไรก็ตาม ด้านบนจะจัดการได้ครั้งละหนึ่งหน้าต่างเท่านั้น อ่านเอกสาร AutoIT สำหรับ WinWait () เพื่อดูวิธีจับคู่หน้าต่างอื่นนอกเหนือจากชื่อหน้าต่าง
บันทึกไปที่ dropwindow.au3 และเรียกใช้ด้วย "autoit3 dropwindow.au3"
http://www.autoitscript.com/site/autoit/downloads/
foreground
ที่จะไป