2014-10-20 16 views
1

我有一個應用程序,可以在不可見模式下自動運行並運行。不過,我想檢測該應用程序是否創建並顯示任何窗口,以便我可以交互(或隱藏)它們。 我正在尋找一種方式來獲得操作系統通知,一個窗口是由shell創建的。 (我正在使用C#)檢測特定進程何時創建一個窗口(在Windows上)

回答

0

這可以通過創建系統範圍的Windows掛鉤來實現。 用WH_SHELL作爲鉤子ID調用SetWindowsHookEx。

在ShellProc回調函數中,無論何時創建窗口,nCode參數都將具有HSHELL_WINDOWCREATED值。 然後,我可以使用GetWindowThreadProcessId來檢查wParam中提供的窗口句柄是否屬於我感興趣的進程。 但是,這必須在本地dll中實現,因爲.NET程序集只能實現WH_MOUSE_LL和WH_KEYBOARD_LL的系統範圍掛接。

相關問題