Windows 核心資訊獲取 API 速查:視窗、裝置驅動、服務全覽
一、視窗枚舉與資訊獲取 桌面與視窗枚舉 // 開啟預設桌面 HDESK hDesk = OpenDesktop(Default, 0, FALSE, DESK
清除系統托盤殭屍圖示:模擬滑鼠掃描法完整實作
問題由來 應用程式異常終止時,托盤區(Notification Area)的圖示常殘留,直到滑鼠移過才消失。本文提供一個無需重啟 Explorer 的程式化清理
C++Builder 自訂 Hint 視窗:繼承 THintWindow 打造專屬工具提示風格
為什麼要自訂 Hint 視窗? 預設 THintWindow 風格單一,無法滿足品牌色系、圓角邊框、陰影、動畫等現代 UI 需求。透過繼承並重寫關鍵虛擬方法,可
Windows 95 多執行緒同步控制:Event 物件實作詳解
前言:Win95 執行緒模型基礎 Windows 95 採用預先多任務架構,每個應用程式即一個進程,進程可建立多個執行緒並發執行。執行緒是系統排程的基本單位,以
C++Builder 4 手動構建 CORBA Name Service 伺服器:避開 Wizard 坑的實戰紀錄
為什麼放棄 CORBA Server Wizard? 嘗試用 BCB4 訪問 NameService 時遭遇詭異錯誤,而 Visibroker 附帶範例卻能正常
C++Builder 實作定時自動關機工具:完整原始碼與核心邏輯解析
專案背景與需求 大型檔案下載常需數小時,使用者希望設定好關機時間後即可安心就寢。本工具提供直觀介面,支援日期/時間精準設定、倒數計時顯示、自動關機執行。 介面
DelayLoad 技術深度解析:優化啟動性能與 API 攔截實戰
破除迷思:DelayLoad 非系統專屬 許多開發者誤以為 DelayLoad 是新版 Windows 才支援的特性。事實上,它是連結器層面的技術,在所有 Wi
Windows 動態連結庫 (DLL) 核心原理與工作機制
從靜態庫到動態連結的演進 動態連結庫 (DLL) 起源於 C 語言函數庫與 Pascal 庫單元的概念。早期的靜態函數庫在連結階段將所需函數代碼直接拷貝至可執行
Windows DLL 全域記憶體管理與進程間數據傳輸實戰
DLL 全域記憶體的所有權機制 在 Windows 環境下,動態連結庫 (DLL) 本身不擁有其開啟的文件或分配的全域記憶體塊。這些資源的所有權歸屬於直接或間接
Windows DLL 程式設計實戰:繞過保護模式實現硬體存取
Windows 採用保護模式,應用程式無法直接存取硬體資源(I/O 埠、實體記憶體、中斷)。嘗試在 Ring 3 直接執行 IN/OUT 指令或寫入實體位址會觸
C++Builder 動態連結庫鏈接問題:OMF/COFF 相容與解決方案
C++Builder 使用 OMF 目標檔格式,而 Visual C++ 產出 COFF 格式。當嘗試在 C++Builder 專案中隱式連結 VC++ 產生的
控制台程式全螢幕模式切換:Win9x 與 NT 核心的不同做法
使用者按 Alt+Enter 可切換主控台視窗的全螢幕模式。若要在程式中以程式碼控制此行為,Windows 9x 與 NT 核心(NT/2000/XP/後續版本
C++Builder 中 Perform()、SendMessage() 與 PostMessage() 差異解析
在 Windows 程式設計中,元件之間的溝通核心是「訊息」。C++Builder 提供了三種發送訊息的方式:VCL 封裝的 Perform()、Win32 A
Windows GDI 繪圖 API 函數速查表
Windows 圖形裝置介面(GDI)提供數百個繪圖函數,涵蓋線條、形狀、文字、點陣圖、路徑、區域、色彩管理、圖元檔等領域。本文整理常用 GDI API 為分類
Win9x 隱藏程式不出現在「關閉程式」對話方塊的兩種方法
在 Windows 95/98 時代,按下 Ctrl+Alt+Del 會彈出「關閉程式」對話方塊,列出所有執行中的應用程式。若想讓自己的程式隱形(不被一般使用者
任務列狀態區圖示程式設計:Shell_NotifyIcon 完整指南
Windows 任務列右下角的通知區(系統托盤)是長期執行背景程式(如防毒軟體、下載工具、輸入法)與使用者互動的最佳位置。本文詳細說明如何使用 Shell_No
善用 Windows 內建 IP 位址控制項 (SysIPAddress32) 於 C++Builder
在網路程式開發中,讓使用者輸入 IP 位址向來是個麻煩事:TEdit 既無法限制輸入範圍(0-255),又需自行解析字串轉換為 32 位整數。其實 Window
C++Builder 非視覺元件訊息處理技巧:隱藏視窗法
非視覺元件(繼承自 TComponent)沒有視窗控制代碼(HWND),因此無法直接接收 Windows 訊息。解決之道是為元件建立一個隱藏視窗,並指派自訂的視