發表文章

目前顯示的是有「API」標籤的文章

[WinAPI] [C++] 3 - 取得電腦名稱、磁碟型態、容量資訊

此練習主要是取得系統資訊 ( 電腦名稱、磁碟容量、磁碟類型等等 ) 用到的 API 有以下: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724295(v=vs.85).aspx BOOL WINAPI GetComputerName(   _Out_    LPTSTR lpBuffer,   _Inout_  LPDWORD lpnSize ); 傳入要寫入電腦名稱的 buffer 、 buffer 尺寸後,就可取得電腦名稱了。若輸入的 buffer 尺寸 ( lpnSize) 太小,會導致無法取得電腦名稱。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa364937(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa383742(v=vs.85).aspx BOOL WINAPI GetDiskFreeSpaceEx(   _In_opt_   LPCTSTR lpDirectoryName,   _Out_opt_  PULARGE_INTEGER lpFreeBytesAvailable,   _Out_opt_  PULARGE_INTEGER lpTotalNumberOfBytes,   _Out_opt_  PULARGE_INTEGER lpTotalNumberOfFreeBytes ); 輸入磁碟機路徑 ( 若路徑為 NULL ,會查找當前磁碟機的根目錄 ) ,此函式會回傳指定的磁碟機的總容量、空閒的空間容量等 …( 單位:位元組 Byte) 由於輸出的型別是 ULARGE_INTEGER 所以有些而不同。 typedef union _ULARGE_INTEGER {   struct {     DWOR...

[WinAPI] [C++] 2 - FindWindow、MessageBox

此練習主要是尋找畫面 Handle ,之後在 Handle 上顯示一訊息視窗。 用到的 API 有以下: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633515(v=vs.85).aspx HWND WINAPI GetWindow(   _In_  HWND hWnd,   _In_  UINT uCmd ); 傳入指定的 Handle 後,會在指定 Handle 中,利用 uCmd 設定值去尋找要找的視窗 Handle 。 順序是利用 Z-Order 來計算 ( 最上層的視窗 Z-Order 最大,越底下越易被其他視窗蓋住,其 Z-Order 越小 ) 。 GW_HWNDFIRST = 0 ; { 選第一個同類型的視窗 } GW_HWNDLAST  = 1 ; { 選最後一個同類型的視窗 } GW_HWNDNEXT  = 2 ; { 選指定視窗下一個同類型的視窗 } GW_HWNDPREV  = 3 ; { 選指定視窗上一個同類型的視窗 } GW_OWNER     = 4 ; { 選所屬的主視窗 } GW_CHILD     = 5 ; { 選所擁有的子視窗 } http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx HWND WINAPI FindWindow(   _In_opt_  LPCTSTR lpClassName,   _In_opt_  LPCTSTR lpWindowName ); 輸入要尋找的視窗類別名稱 ( 不知道可略為 NULL) ,以及視窗的名稱 ( 即是視窗 title) ,函式就會回傳找到的視窗 Handle 。搜尋合乎參數的最上層視窗。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms633504(v=v...

[WinAPI] [C] 1 - Console下輸出入使用

今日頭次練習,來簡易的吧! ... 太難的俺也不行呀 ... 使用 stdio.h 中的幾個函式,來做一般輸出入測試: i nt sprintf ( char * str, const char * format, ... ); int swprintf (wchar_t* ws, size_t len, const wchar_t* format, ...); // 將後頭格式的字串寫入到 str 中 http://www.cplusplus.com/reference/cstdio/sprintf/ http://www.cplusplus.com/reference/cwchar/swprintf int printf ( const char * format, ... ); int wprintf (const wchar_t* format, ...); // 輸出指定格式的字串 http://www.cplusplus.com/reference/cstdio/printf/ http://www.cplusplus.com/reference/cwchar/wprintf/ int scanf ( const char * format, ... ); int wscanf (const wchar_t* format, ...); // 取得輸入的整數、字元或字串等等 … // 依照 format 處設定,才可知道要取得的資訊是什麼 http://www.cplusplus.com/reference/cstdio/scanf/ http://www.cplusplus.com/reference/cwchar/wscanf/?kw=wscanf int sscanf ( const char * s, const char * format, ...); int swscanf (const wchar_t* ws, const wchar_t* format, ...); // 與 scanf 不同,他 scan 的資訊是由已經有值的 s 變數中取得。 http://www.cplusplus.com/reference/cstdio/sscanf/ ht...