Linux 原生是文字界面 它的 shell 是文字介面的例如 bash shell
Windows 是原生支援圖形介面的系統 它的 shell 也是圖形介面的 就是 explorer.exe
在螢幕上看到的東西都是屬於 explorer 創造出來的 window
下圖可以顯示 explorer 的階層
progman 就是 explorer 創建出來的頂層視窗 用 GetShellWindow API 可以取得它的 Handle
它的 class name 就是 "progman"
但是其實在 progman 之上還有一個最頂層 window 它被 progman 覆蓋所以看不到
這個 window 就是 desktop window 它是一個特殊的 系統定義的視窗 是所有其他視窗的祖先
用 GetDesktopWindow API 可以取得它的 Handle
這個 window 是被 csrss.exe 創造出來的
它的 class name 是 "#32769"
系統中一些重要元件例如 taskbar or desktop 都是被 explorer 創建出來的 window
是 progman 的後代
reference:
http://stackoverflow.com/questions/1669111/how-do-i-get-the-window-handle-of-the-desktop
http://blogs.microsoft.co.il/blogs/pavely/archive/2011/06/18/getshellwindow-vs-getdesktopwindow.aspx
http://technet.microsoft.com/en-us/magazine/gg213851.aspx
http://www.k8w.net/technology/develop/200710/67.html
沒有留言:
張貼留言