windows desktop
Windows內存小結
摘要: 虛擬內存, 物理內存,工作集, 頁文件, 堆棧,堆
閱讀全文
posted @
2016-04-07 21:45 Richard Wei 閱讀(3324) |
評論 (1) 編輯
Windows系統(tǒng)機制筆記
摘要: System Mechanisms(interrupt, kernel object, synchronization)
閱讀全文
posted @
2016-03-22 22:48 Richard Wei 閱讀(2185) |
評論 (1) 編輯
GDI VS Dxgi
摘要: Win10, WinRT, Dxgi
閱讀全文
posted @
2016-03-16 22:09 Richard Wei 閱讀(3978) |
評論 (1) 編輯
Windows進程筆記
摘要: Windows進程結構
閱讀全文
posted @
2016-03-16 22:03 Richard Wei 閱讀(2732) |
評論 (0) 編輯
深入解析結構化異常處理(SEH)
摘要: 告訴你Windows結構化異常處理(SEH)技術的臺前幕后...
閱讀全文
posted @
2015-02-27 21:40 Richard Wei 閱讀(16597) |
評論 (0) 編輯
如何給開源的DUILib支持Accessibility
摘要: 盡管我N次吐槽基于GDI的DirectUI界面庫會隨著XP的淡出而逐漸失去市場, 但是實際工作中還是要經常和GDI打交道,外面招聘單位還是有不少Windows客戶端的開發(fā)崗位。 在這"移動互聯(lián)和"Web前端"橫行的"大數據"時代,很多同事開始向移動App和大數據轉型, 盡管這幾年PC客戶端的開發(fā)人員是只出不進, 但是只要Windows存在一天,我們的工作就還是有價值的..
閱讀全文
posted @
2014-11-15 00:01 Richard Wei 閱讀(8344) |
評論 (7) 編輯
如何在桌面上透明的繪畫
摘要: 桌面透明標注和繪畫實現(xiàn)原理
閱讀全文
posted @
2014-09-22 23:10 Richard Wei 閱讀(6365) |
評論 (3) 編輯
如何檢測資源泄露
摘要: Window上我們常見的資源泄露包括內存和對象句柄泄露, 下面討論下對各類泄露的檢測方法。
閱讀全文
posted @
2014-08-27 22:37 Richard Wei 閱讀(3800) |
評論 (0) 編輯
如何基于純GDI實現(xiàn)alpha通道的矢量和文字繪制
摘要: 一個基本的圖形引擎要包括幾個方面的支持:位圖繪制,文字繪制,矢量繪制(如矩形,線條)。
可惜GDI這個20多年前發(fā)明的老古董,對這幾項的繪制, 除了位圖繪制可以通過AlphaBlend支持alpha通道,其他繪制都不支持alpha通道。
閱讀全文
posted @
2014-08-26 00:22 Richard Wei 閱讀(5270) |
評論 (3) 編輯
如何抓取揚聲器的聲音
摘要: 工作中有個需求是關于抓取揚聲器的聲音, 為什么會有這個需求?
試想我們在共享遠程桌面時,如果能夠把本地桌面應用程序的聲音也一起發(fā)給對方, 用戶體驗該是多么棒。
閱讀全文
posted @
2014-08-21 23:34 Richard Wei 閱讀(14966) |
評論 (5) 編輯
如何將Icon轉成Bitmap
摘要: 最近工作中有個需求是將Icon轉成帶Alpha通道的Bitmap, 雖然網上有不少這方面的文章,但很多都是錯的, 這里記錄下,或許對后來人有用
閱讀全文
posted @
2014-08-21 22:23 Richard Wei 閱讀(5076) |
評論 (0) 編輯
一個exe可執(zhí)行文件的生與死(運行原理)(轉載)
摘要: 本文講的的Windows 環(huán)境下exe可執(zhí)行文件的運行原理,這里面涉及的知識很多,需要讀者對Windows操作系統(tǒng)(如注冊表、進程、線程、內存管理、PE文件格式等)、Windows編程(本文使用c++語言)等有所了解。
閱讀全文
posted @
2014-04-05 11:48 Richard Wei 閱讀(2472) |
評論 (0) 編輯
從點擊Button到彈出一個MessageBox, 背后發(fā)生了什么
摘要: 簡單總結下,操作系統(tǒng)通過一層層的封裝,隱藏了太多的東西, 很多看似簡單的行為, 實際上背后都有很復雜層層調用。理解這些原理,可以讓你的知識達到一定的深度,幫助你更好的解決問題。
閱讀全文
posted @
2014-04-05 00:57 Richard Wei 閱讀(5314) |
評論 (2) 編輯
關于Windows高DPI的一些簡單總結
摘要: 如果說以前XP時代我們還有理由不關注高DPI, 那么在移動設備時代和大顯示器的高分辨率時代, 我們就沒有理由不關注高DPI了, 比如Surface Pro的分辨率是1920x1080, 這種情況下如果系統(tǒng)我們不設置高DPI, 基本上就沒法觸摸和操作了,所以現(xiàn)在普通程序對高DPI的支持已經成為趨勢了。
閱讀全文
posted @
2014-02-18 23:12 Richard Wei 閱讀(41865) |
評論 (10) 編輯
Window Ghosting
摘要: 在XP時代我們的程序沒有響應后只能通過任務管理器強制殺掉,但是Vista之后情況變了, 我們仍然可以拖動失去響應的窗口,甚至可以嘗試最小化和關閉窗口, 我們把這個特性叫住Window Ghosting。
閱讀全文
posted @
2014-01-08 21:26 Richard Wei 閱讀(3231) |
評論 (3) 編輯
Windows桌面共享中一些常見的抓屏技術
摘要: 最后簡單總結下 , 我們可以看到Windows系統(tǒng)上基本沒有一種通用的抓屏技術可以高效的抓取所有的系統(tǒng)(XP/Win7/Win8), 很大一部原因是操作系統(tǒng)的顯示驅動模型在從XPDM向WDDM轉變, 應用層的API也在從GDI向D3D轉變 。 相對于Linux的穩(wěn)定, Window的不斷發(fā)展和進步, 對開發(fā)人員究竟是喜是悲?
閱讀全文
posted @
2013-12-01 22:04 Richard Wei 閱讀(38814) |
評論 (16) 編輯
HOOK技術的一些簡單總結
摘要: 探討各種Hook技術: SetWindowsHookEx, SetWinEventHook, API Hook, COM Hook
閱讀全文
posted @
2013-10-30 11:03 Richard Wei 閱讀(30193) |
評論 (13) 編輯
關于Windows窗口框架
摘要: 我們知道Windows的窗口消息處理函數是C方式, 面向過程的, 所以窗口框架的基本任務就是將它轉成面向對象的方式, 確切的說如何將消息處理函數第一參數HWND轉成對象指針。
閱讀全文
posted @
2013-09-08 14:47 Richard Wei 閱讀(4394) |
評論 (11) 編輯
如何獲取桌面截圖
摘要: 最近工作 中有個需求是抓取桌面截圖, 這里的桌面是指點了“顯示桌面”之后看到的桌面, 截圖內容包括桌面背景和圖標以及任務欄
閱讀全文
posted @
2013-08-30 20:30 Richard Wei 閱讀(7986) |
評論 (2) 編輯
淺析Windows安全相關的一些概念
摘要: 記錄一些Windows 安全相關的概念, 分享自己對Windows安全機制的一些理解。
閱讀全文
posted @
2013-08-25 07:58 Richard Wei 閱讀(10975) |
評論 (3) 編輯
DirectUI中模態(tài)對話框和菜單的原理
摘要: Windows的API封裝了太多細節(jié), 盡管大部分時候我們只要知道如何使用它們,而不用關心它們的內部如何實現(xiàn)。 但是當你寫一些相對底層的東西,比如開發(fā)自己的DirectUI界面庫時, 還是需要真正理解某些API的內部實現(xiàn)原理,才能繼續(xù)深入下去
閱讀全文
posted @
2013-04-07 22:19 Richard Wei 閱讀(5190) |
評論 (10) 編輯
Rootkit技術發(fā)展史(轉載)
摘要: “SSDT”(System Service Descriptor Table,系統(tǒng)服務描述符表) Inline Hook FSD”(File System Driver,文件系統(tǒng)驅動)
閱讀全文
posted @
2013-01-12 22:32 Richard Wei 閱讀(1463) |
評論 (0) 編輯
理解Windows內核模式與用戶模式
摘要: windows程序運行分為內核模式和用戶模式,內核模式可以訪問所有的內存地址空間, 并且可以訪問所有的CPU指令。一般程序運行在用戶模式, 通過系統(tǒng)調用切換到內核模式執(zhí)行系統(tǒng)功能,Windows系統(tǒng)通過這種方式來確保系統(tǒng)的安全和穩(wěn)定。
閱讀全文
posted @
2013-01-12 22:03 Richard Wei 閱讀(8602) |
評論 (0) 編輯
如何讓窗口控件半透明
摘要: 在網上關于窗口視覺效果,有2個問題被問得最多:
第一個是如何讓窗口邊框有陰影效果?
第二個是如何讓窗口控件有半透明效果?
閱讀全文
posted @
2012-08-23 00:38 Richard Wei 閱讀(7316) |
評論 (4) 編輯
軟件換膚的原理
摘要: 總的來說DirectUI是趨勢,而微軟的WPF代表了DirectUI最先進的技術方向,換膚對于DirectUI來說非常容易。隨著Win7,Win8 的普及,傳統(tǒng)界面庫的市場會越來越小,一來因為系統(tǒng)本身已經很炫了,二來微軟自己的WPF和Xaml技術基本上已經可以實現(xiàn)任何想要的效果。當然只要XP不消亡,傳統(tǒng)的界面庫還是有自己的一席之地。
閱讀全文
posted @
2012-08-21 22:33 Richard Wei 閱讀(6036) |
評論 (2) 編輯
共享個人寫的一個截屏小工具
摘要: 主要特性:
(1)軟件小而高效,使用流暢,設計人性化
(2)支持截圖區(qū)域的手工選擇和根據窗口自動識別選擇
(3)支持矩形,圓形,直線,箭頭,畫筆,文本等注釋工具
(4)支持橡皮擦除功能
(5)無限次數的撤銷和重做
(6)支持鼠標光標的截取
(7)支持鼠標區(qū)域跟蹤和放大
(8)支持各種圖像文件格式的保存和編輯
(9)支持多顯示器
(10)支持換膚和多語言
閱讀全文
posted @
2012-08-21 00:02 Richard Wei 閱讀(7183) |
評論 (19) 編輯
如何學習Windows編程
摘要: 經常有初學者詢問如何學習Windows編程?
很多人從MFC開始學習,結果常常是一頭霧水,知難而退;也有人毅力堅強,熬過了MFC的陣痛期,最后卻是知其然而不知其所以然,并且思維被限制在MFC的框架之中,遇到稍微有點規(guī)模的程序就無從下手了。
閱讀全文
posted @
2012-08-15 13:37 Richard Wei 閱讀(7575) |
評論 (5) 編輯
如何減小Exe, DLL 的大小
摘要: 運行庫,數據節(jié), 代碼節(jié)
閱讀全文
posted @
2012-07-07 15:17 Richard Wei 閱讀(5469) |
評論 (1) 編輯
遠程線程入門
摘要: 遠程線程作為一項"合法"的代碼注入技術,在windows上被大量使用, 它的本質就是把一塊可執(zhí)行代碼寫入到對方進程,然后讓其起運行。
一般它的實現(xiàn)過程是這樣的, 通過VirtualAllocEx在目標進程分配內存空間,然后通過WriteProcessMemory將我們的可執(zhí)行代碼寫入到目標進程,最后通過CreateRemoteThread讓我們的可執(zhí)行代碼在目標進稱里運行起來。
閱讀全文
posted @
2012-06-20 15:38 Richard Wei 閱讀(3991) |
評論 (5) 編輯
QQ截圖時窗口自動識別的原理
摘要: 新版的QQ在截圖時加入了窗口自動識別的功能,能根據鼠標的位置自動畫出下面窗口的輪廓。今天有人在論壇上問起這個問題,下面我們來探討這個功能的實現(xiàn)原理。
閱讀全文
posted @
2012-05-06 21:34 Richard Wei 閱讀(12240) |
評論 (9) 編輯
桌面上嵌入窗口(桌面日歷)原理探索
摘要: 今天在QQ群里有人問怎樣實現(xiàn)將自己的窗口嵌入桌面,讓它和桌面融為一體,就像很多桌面日歷軟件那樣。
閱讀全文
posted @
2012-05-03 22:07 Richard Wei 閱讀(8608) |
評論 (8) 編輯