發表文章

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

讀取硬碟資訊(調用API)

雖然使用WMI來讀取系統軟硬體各項資訊非常方便,但不知何故,使用WMI讀取Windows2000做業系統的硬碟資訊就是會出錯,因此必須改成調用API的方式來實作。 呼叫方式 HardDiskInfo hdd = AtapiDevice.GetHddInfo(0); // 第一個硬碟 MessageBox.Show("Module Number:" + hdd.ModuleNumber); MessageBox.Show("Serial Number:" + hdd.SerialNumber); MessageBox.Show("Firmware:" + hdd.Firmware); MessageBox.Show("Capacity:" + hdd.Capacity + "M"); 參考網址 如何得到硬盤序列號[C#] 本文範例 : HardInfo.rar

使用API關閉特定應用程式

在此舉例開啟了一個IE瀏覽器視窗 //關閉IE [DllImport("user32.dll")] public static extern int FindWindow(string strclassName, string strWindowName); [DllImport("user32.dll")] private static extern int SendMessage( int hWnd,   // handle to destination window int Msg,    // message int wParam, // first message parameter int lParam // second message parameter ); const int WM_KEYDOWN = 0x0100; const int WM_KEYUP = 0x0101; const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; private void closeIE() { //dd 為開啟網頁的Title int a = FindWindow("IEFrame", "dd - Microsoft Internet Explorer"); if (a > 0) { SendMessage(a, WM_SYSCOMMAND, SC_CLOSE, 0); } }

在應用程式表單內點選設定區塊拖曳Form

應用程式在拖曳時只能點選視窗狀態列的地方才可以拖曳,表單內部特定區塊要可以拖曳必須透過OnMouseClick 事件,但是卻有一個特別的情況會發生,就是快速拖曳時會跟不上滑鼠的速度,不知道是不是因為使用NET的事件的關係,改成WIN32 API此現象就可以改善

使用Win32 API FTP

由於使用NET FTP 會出現中文檔名下載回來後變亂碼的問題,因此改用WIN32的API來完成檔案的上傳下載及查詢