API 呼叫範例

更新:2007 年 11 月

這個範例會示範如何呼叫 Win32 API 函式,來列舉和控制處理序與視窗,以及查詢和變更系統設定。

若要取得範例及其安裝指示

  • 請執行下列其中一項或多項作業:

    • 按一下 [說明] 功能表上的 [範例]。

      讀我檔案會顯示範例的相關資訊。

    • 造訪 Visual Studio 2008 範例 網站 (英文)。您可以在此找到最新版的範例。

    • 在已安裝 Visual Studio 的電腦中尋找範例。根據預設,範例和讀我檔案會安裝在 drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。如果是 Visual Studio Express 版,則所有範例都能在線上找到。

如需詳細資訊,請參閱尋找範例檔案

安全性注意事項:

範例程式碼可說明整個概念,並顯示和此概念相關的程式碼。此程式碼可能不符合特定環境的安全性要求,您也不應該以範例所示的方法使用此程式碼。我們建議您新增安全性及錯誤處理程式碼,讓您的專案更安全完善。Microsoft 提供的程式碼未經修改,並且不對任何可能造成的後果負任何責任。

若要執行這個範例

  • 按 F5。

示範

Win32API 類別會定義於個別檔案 (Win32API.vb) 中。每個使用 Declare 陳述式的 API 宣告,可以做為 Win32API 類別的 Shared 成員。共用成員可以使用類別名稱直接呼叫。不需建立類別的執行個體,就能使用共用成員。

主要表單會包含一個索引標籤控制項 (Tab Control),其中含有四個索引標籤頁。每個索引標籤頁會示範使用 Win32 API 呼叫的動作:

  • 使用中處理序:以所有執行中的 Windows 處理序填入清單檢視。重點在於如何使用委派來使用 EnumWindows 這個 Win32 回呼函式。

  • 使用中視窗:使用 Win32 API 篩選回呼函式 EnumWindows 的結果,以所有使用中視窗填入 ListBox 控制項。在這個範例中,EnumWindows 是使用 DllImportAttribute 類別而非 Declare 陳述式來定義,以對照使用這個兩個方法之間的差異。

  • 顯示視窗:可供使用者輸入視窗標題和 (或) 類別名稱,並將視窗帶至前景。這個範例強調將多個型別的參數多載至一個 Win32 API 函式,以允許將不同型別的變數傳遞至函式。

  • API 呼叫:顯示如何使用下列的 Win32 API 呼叫:GetDiskFreeSpaceGetDiskFreeSpaceExGetDriveTypeCreateDirectorySwapMouseButtonIsPwrHibernateAllowedSetSuspendStateBeep。上述的呼叫範例會傳回無法從 Managed 類別對等用法取得的資訊。

請參閱

參考

DllImportAttribute

Declare 陳述式