1
我想在AutoHotkey中實現一種窗口對接功能,並且在使用WinMove
移動窗口時出現性能問題。用WinMove移動窗口非常慢
在我的消息處理程序中,我檢測被移動的窗口是否有任何依賴項,並根據需要移動它們。問題是移動Dockers WinMove
會導致非常緩慢和不平穩的拖動。奇怪的是,CPU負載確實是而不是上升,所以它不是由不良循環或其他引起的。
如果我使用Gui,Show
命令代替,它會產生一個很好的流暢的動作,但是如果停靠的窗口關閉並且它的父窗口被移動,則停靠窗口將重新顯示爲一個薄的〜5x10像素的窗口。我嘗試使用命令的hide
選項,以及在窗口的關閉處理程序中專門添加對Gui, Destroy
的調用,但都沒有幫助。此外,使用Gui
命令意味着它不僅更加混亂,而且除了句柄之外還必須存儲Gui數字,這並不理想。
; Works and leaves closed windows closed, but is very slow
WinMove, ahk_id %dHWND%,, dX, dY
; This works and is fast, but requires storing the GUI # and closed windows reappear
Gui, % (Dock[dHWND, "gui"] ? Dock[dHWND, "gui"] . ":" : "") . "Show", % "hide na x" . dX " y" . dY
有沒有人知道爲什麼WinMove
是如此之慢,以及如何解決它? (我也會考慮Gui
命令,如果它可以修復不重新顯示關閉窗口。)
完美。我一直在忘記這一點。感謝三百萬。 – Synetech 2014-09-26 21:54:35