1
我不得不面對一個令人討厭的MS Windows應用程序,一旦它失去焦點就退出工作。我的問題是,我怎麼能欺騙這個應用程序來相信它仍然是焦點,但它確實不是?讓一個窗口相信它仍然是焦點,儘管它不是
我的想法是:
- 是否有可能從眼前這個應用抑制相應的「WM」的消息?
- 我可以向這個窗口發送一條假消息嗎?
我不得不面對一個令人討厭的MS Windows應用程序,一旦它失去焦點就退出工作。我的問題是,我怎麼能欺騙這個應用程序來相信它仍然是焦點,但它確實不是?讓一個窗口相信它仍然是焦點,儘管它不是
我的想法是:
發送WM_ACTIVATE消息適用於某些應用:
SendMessage(hWnd, WM_ACTIVATE, WA_CLICKACTIVE, hWnd);
離開最後一個參數爲NULL,可能工作了。
我想你可以嘗試發送一個'WM_SETFOCUS'消息來獲得快速和骯髒的解決方案 - 如果它甚至可以工作。否則,可能是一個處理髮送給它的WM_KILLFOCUS消息的鉤子。無論哪種方式,如果你這樣做,你不能指望窗口的行爲。我當然希望這是爲了個人使用,如果你想嘗試這樣的事情。更有希望的解決方案是與任何製作其他軟件的人談話,並要求在窗口失去焦點時繼續選擇。 – chris
根據應用程序的工作方式,您可能還需要僞裝像「GetFocus」這樣的函數。這樣做的最可靠的方法就是在虛擬機中運行應用程序,並讓它在可視機器中保持焦點,只要它喜歡即可。 –