亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

WINDOWS編程技巧之DELPHI篇

2019-11-18 17:57:08
字體:
來源:轉載
供稿:網友

本文由lanyus從《奇思異想編程之DELPHI篇》收集整理,轉載請注明此處。

一、隱藏任務欄
在WINDOWS中,系統的任務欄本質上也是一個窗口,其窗口類名為“Shell_TrayWnd"。要實現對它的操作,可通過API函

數FindWindow和

ShowWindow來達到目的。

var
wndHandle:THandle;
wndClass:Array[0..50] of char;
begin
StrPCopy(@wndClass[0],'Shell_TrayWnd');
wndHandle:=FindWindow(@wndClass[0],nil);
ShowWindow(wndHandle,SW_HIDE);   //sw_restore
end;


二、隱藏桌面上的快捷方式
跟任務欄一樣,桌面其實也是一個窗口,它的類名為“PRogMan”,同樣用FindWindow找到窗口句柄,再郵ShowWindow

來決定是否顯示。

三、獲取任務欄尺寸及位置
用FindWindow找到句柄,再用GetWindowRect獲取當前任務欄尺寸大小。
GetWindowRect(HWND hWnd,    //所求窗口的句柄
              LPRECT lpRect   //存儲窗口坐標的結構體的地址
             ):Boolean;

四、獲取CPU信息
CPU的相關信息是存儲在一個結構體中的,這個結構體由DELPHI用TSYSTEMINFO進行了封裝,定義如下:
typedef struct_SYSTEM_INFO{
  union{
 DWord dwOemId;                    //已改用如下結構體分支來代替這個變量的使用了
        struct{
            WORD wProcessorArchitecture; //表示處理器的架構
            word wReserved;        //保留字
        };
   };
 DWORD swPageSiae;            //分頁大小
 LPVOID lpMinimumapplicationAddress;   //應用程序和動態鏈接庫可以訪問的最小地址
 LPVOID lpMaximumApplicationAddress;   //應用程序和動態鏈接庫可以訪問的最大地址
 DWORD  swActiveProcessorMask;      //活動處理器的掩碼
 DWORD  dwNumberOfProcessors;       //處理器的數目
 DWORD  dwProcessorType;         //處理器的類別
 DWORD  dwAllocationGranularity;     //虛擬內存地址分配的間隔
 WORD   wProcessorLevel;         //處理器的級別
 WORD   wProcessorRevision;       //處理器修改信息
 }SYSTEM_INFO;
其中dwProcessorType由wProcessorArchitecture、wProcessorLevel和wProcessorRevision三個成員來確定,其值為:
  PROCESSOR_INTEL_386:INTEL80386系列;
  PROCESSOR_ITNEL_486:INTEL80486系列;
  PROCESSOR_INTEL_PENTIUM:INTEL PENTIUM系列;
  PROCESSOR_MipS_R4000:MIPS的4000系列(僅適用于WINDOWS NT);
  PROCESSOR_ALPHA_21064:ALPHA的21064系列(僅適用于WINDOWS NT);

另外,獲得CPU信息調用API函數GetSystemInfo即可。

五、獲取內存信息。
與獲取CPU一樣,系統依然采用了一個結構體來存儲內存信息。這個存儲內在狀態信息的體定義下如:
typedef struct_MEMORYSTATUS{
 DWORD dwLength;            //SIZEOF(MEMORYSTATUS)即本結構體的大小
 DWORD dwMemoryLoad;        //當前使用內存與總內在的百分比
 DWORD dwTotalPhys;     //總物理內存大小
 DWORD dwAvailPhys;     //可用物理內存大小
 DWORD dwTotalPageFile;   //總頁面文件的大小
 DWORD dwAvailPageFile;   //可用頁面文件的大小
 DWORD dwTotalVirtual;    //總虛擬內存的大小
 DWORD dwAvailVirtual;    //可用虛擬內存的大小
}MEMORYSTATUS,*LPMEMORYSTATUS;

最后調用API函數GlobalMemoryStatus來獲取內存信息。

六、獲取磁盤空間大小。   (測試發現不準)
使用API函數GetDiskFreeSpace。
BOOL GetDiskFreeSpace(
 LPCTSTR lpRootPathName,           //根目錄
 LPDWORD lpSectorsPerCluster,   //每簇的扇區數
 LPDWORD lpBytesPerSector,     //每個扇區的字節數
 LPDWORD lpNumberOfFreeClusters,  //可用的簇數
 LPDWORD lpTotalNumberOfClusters  //總簇數
 );
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Secspclu,Bytespsec,Freeclu,Totalclu,Ts,Fs:DWORD;
begin
GetDiskFreeSpace('c:/',Secspclu,Bytespsec,Freeclu,Totalclu);
Fs:=Freeclu*Secspclu*Bytespsec;
Ts:=Totalclu*Secspclu*Bytespsec;
Edit1.text:=FormatFloat('###,###',Ts); //總空間
Edit2.text:=FormatFloat('###,###',Fs);  //可用空間
end;

七、限制鼠標移動范圍。
WINDOWS里有一個現成的API函數ClipCursor可以限制光標移動區域。
BOOL ClipCursor(
     CONST RECT *lpRect    //指向一個存儲矩形范圍數據的結構體
     );
有了這個函數就可以限制光標在屏幕的移動范圍了。但是,如果想控制鼠標在某窗口的固定范圍內移動,則需要調用咖

一個函數

MapWindowPoints,它可以將一個窗體的坐標轉化為另一個相關的窗體坐標。
int MapWindowPoints(
    HWND hWndFrom,         //源窗口句柄
    HWND hWndTo,     //目標窗體句柄
    LPPOINT lpPoints,   //指向結構體數組,包含需要轉化的坐標
    UINT cPoints     //數組中結構體的數量
    );
參數hWndForm或hWndTo為NULL或HWND_DESKTOP時,表明所源窗體或目標窗體為屏幕窗體。參數lpPoints可以指向一個

Rect結構體,此時cPoints

的值將設為2。

procedure TForm1.BitBtn1Click(Sender: TObject);
var
sc:TRect;
begin
sc:=BitBtn2.BoundsRect;
MapWindowPoints(handle,0,sc,2);
ClipCursor(@sc);

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
sc:TRect;
begin
sc:=RECT(0,0,screen.Width,screen.Height);
ClipCursor(@sc);
end;

八、如何啟動屏幕保護程序。
使用SendMessage或PostMessage函數。
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
sendmessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);
end;
啟動屏幕保護程序還有一個方法,調用函數SystemParametersInfo,能過其參數設置可以啟動或關閉屏幕保護程序。
  SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,1,nil,0);  //啟動屏保
 SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,0,nil,0);  //關閉屏保


九、檢測驅動器是否準備就緒。
在DELPHI中沒有提供專門的函數檢測驅動器是否準備就緒,也不能直接調用一人API函數來實現這一操作。但是,我們

可以利用DiskSize來檢測磁盤容量,如果驅動器不存在或沒有準備好,它會返回-1,其它情況下則返回該磁盤或光盤的

容量。

Function DiskSize(Drive:Byte):Int64;
參數為0時,表示指定當前驅動器;為1時表示A盤,2表示B盤,依此類推。

陸續增加中......


上一篇:delphi多線程程序示例(與.net一樣簡單)

下一篇:DELPHI面向對象支持特點--保護級類成員的應用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女免费视频| 精品视频在线播放免| 97在线视频精品| 久久91精品国产91久久久| 亚洲国产毛片完整版| 日韩av在线免费观看| 久久免费少妇高潮久久精品99| 91亚洲精品在线| 久久九九亚洲综合| 久久精品久久久久| 亚洲欧美国产精品va在线观看| 欧美日韩国产一区中文午夜| 国内揄拍国内精品少妇国语| 91av在线免费观看| 久久福利视频网| 日韩av一区二区在线观看| 成人福利网站在线观看| 九九九久久国产免费| 欧美日韩国产成人在线| 成人在线精品视频| 26uuu另类亚洲欧美日本一| 欧美高清视频在线| 久久精品久久久久| 欧美国产视频一区二区| 国产亚洲精品久久久优势| 这里精品视频免费| 欧美在线视频播放| 自拍偷拍亚洲精品| 欧美日韩美女在线| 日韩中文字幕免费| 欧美另类极品videosbestfree| 操91在线视频| 亚洲国产高清福利视频| 91国内在线视频| 91中文字幕一区| 日韩av一区二区在线观看| 精品国产91久久久久久| 国产性猛交xxxx免费看久久| 亚洲国产成人精品久久| 一色桃子一区二区| 国产情人节一区| 亚洲a∨日韩av高清在线观看| 亚洲自拍av在线| 亚洲精品美女在线观看| 亚洲成人精品久久久| 久久精品久久久久久国产 免费| 欧美区在线播放| 亚洲性无码av在线| 国产精品久久久久久久久影视| 81精品国产乱码久久久久久| 国产亚洲人成a一在线v站| 国产日韩专区在线| 欧美一区在线直播| 国产玖玖精品视频| 国产精品女视频| 91中文字幕在线观看| 亚洲第一福利网站| 91精品在线看| 日韩美女福利视频| 国产精品第3页| 精品欧美aⅴ在线网站| 一区二区三区国产在线观看| 欧洲亚洲女同hd| 欧美有码在线观看视频| 精品亚洲精品福利线在观看| 精品调教chinesegay| 日韩电影中文字幕av| 色综合五月天导航| 欧洲美女免费图片一区| 国产精品三级久久久久久电影| 国产精品一区久久久| 日韩中文字幕视频在线观看| 久久精品夜夜夜夜夜久久| 国产精品女人久久久久久| 91精品久久久久久久久久久久久久| 亚洲国产高清福利视频| 日本精品久久久久久久| 国产精品av在线播放| 日本三级久久久| 亚洲在线免费看| 精品久久久视频| 亚洲a级在线观看| 国产欧美精品一区二区三区介绍| 日韩国产精品亚洲а∨天堂免| 精品国产乱码久久久久久天美| 久久久精品一区二区| 自拍偷拍亚洲在线| 国产在线拍偷自揄拍精品| 中文字幕亚洲一区在线观看| 成人在线免费观看视视频| 亚洲自拍欧美色图| 亚洲а∨天堂久久精品喷水| 久久中文字幕一区| 91精品久久久久久久久久久久久久| 97视频在线播放| 国产精品igao视频| 欧美性xxxxx极品娇小| 亚洲第一国产精品| 欧美激情在线观看视频| 欧美理论片在线观看| 亚洲天堂av在线免费观看| 久久精品成人一区二区三区| 久久不射热爱视频精品| 欧美激情三级免费| 日韩av在线天堂网| 欧美一级高清免费| 国产日韩在线播放| 久久精品久久久久| 日韩在线免费视频| 91精品啪aⅴ在线观看国产| 5252色成人免费视频| 性色av一区二区咪爱| 亚洲国内精品在线| 欧美激情在线观看视频| 亚洲精品福利在线观看| 91亚洲国产成人精品性色| 亚洲国产中文字幕久久网| 国产精品久久二区| 亚洲综合国产精品| 欧美丰满片xxx777| 精品久久久久久久中文字幕| 午夜精品一区二区三区视频免费看| 久久国产精品久久国产精品| 91av在线免费观看视频| 成人a在线观看| 亚洲精品中文字| 欧美日韩国产一中文字不卡| 日韩中文字幕视频在线| 欧美黑人巨大精品一区二区| 精品日韩美女的视频高清| 国产在线播放91| www国产91| 国产精品h在线观看| 国产精品大片wwwwww| 欧美精品videos另类日本| 久久久久久久久网站| 富二代精品短视频| 亚洲va电影大全| 国产在线精品播放| 在线看日韩av| 国产一区av在线| 亚洲欧美日韩国产中文专区| 久久精视频免费在线久久完整在线看| 国产综合在线观看视频| 国语自产精品视频在线看| 国产精品h在线观看| 欧美丰满少妇xxxx| 亚洲国产精品高清久久久| 日韩精品免费看| 亚洲欧美日韩精品久久亚洲区| 日韩有码在线视频| 国产视频999| 97在线看福利| 欧美猛交ⅹxxx乱大交视频| 亚洲黄页视频免费观看| 久久久久久久久久久国产| 国产精品永久免费| 亚洲欧美日韩成人| 久久久久久久爱| 欧美精品久久久久久久免费观看| 色琪琪综合男人的天堂aⅴ视频| 久久久久中文字幕| 国产成人精品久久二区二区91| 国产精品video|