ÊÖ»úÕ¾
ÍøÍ¨·ÖÕ¾
µçÐÅÖ÷Õ¾
ÃÜ¡¡Âë:
Óû§Ãû£º
µ±Ç°Î»Öà : Ö÷Ò³>ÍøÂç±à³Ì>Asp.Net±à³Ì>Áбí

ÀûÓÃWindows APIº¯ÊýºÍ×¢²á±í»ñȡϵͳÐÅÏ¢

À´Ô´£º»¥ÁªÍø ×÷ÕߣºÎ÷²¿ÊýÂë ʱ¼ä£º2008-04-09
Î÷²¿ÊýÂë-È«¹úÐéÄâÖ÷»ú10Ç¿£¡40ÓàÏîÐéÄâÖ÷»ú¹ÜÀí¹¦ÄÜ,È«¹úÁìÏÈ!Ë«Ïß¶àÏßÐéÄâÖ÷»úÄϱ±·ÃÎʳ©Í¨ÎÞ×è!Ãâ·ÑÔùËÍÆóÒµÓʾÖ,.CNÓòÃû,×ÔÖú½¨Õ¾480ÔªÆð,Ãâ·ÑÊÔÓÃ7Ìì,ÂúÒâÔÙ¸¶¿î! P4Ö÷»ú×âÓÃ799Ôª/ÔÂ.Ô¸¶Ãâѹ½ð!

¡¡¡¡ÔÚ ¿ª ·¢ Ó¦ Óà ³Ì Ðò ʱ£¬ Ôö ¼Ó Ò» Ïî ÏÔ Ê¾ ¼Æ Ëã »ú ϵ ͳ ЊϢ µÄ ¹¦ ÄÜ£¬ Àý Èç ÒÑ °² ×° µÄ Èí ÅÌ¡¢ Ó² ÅÌ¡¢ ¹â Çý¡¢ Íø Âç Çý ¶¯ Æ÷£¬ Ó² ÅÌ µÄ ÈÝ Á¿ ºÍ Ê£ Óà ¿Õ ¼ä£¬ ÏÔ Ê¾ Æ÷ ·Ö ±æ ÂÊ¡¢ ¼ü ÅÌ Àà ÐÍ¡¢ Êó ±ê µÄ ¼ü Êý£¬ ÄÚ ´æ ´ó С¡¢CPU Àà ÐÍ£¬Windows µÄ °æ ±¾ ºÅ¡¢ ²ú Æ· ±ê ʶ¡¢ ×¢ ²á Óà »§ µ¥ λ Ãû ºÍ Óà »§ Ãû¡¢ µ± ǰ ²Ù ×÷ Óà »§ Ãû µÈ( ¼û ÔË ÐРͼ ʾ)£¬ µ± È» »¹ ÓÐ ¸ü ¶à µÄ ЊϢ£¬ Õâ Ñù »á ʹ Äã µÄ ³Ì Ðò ¸ü ÓÑ ºÃ¡£ Æä ʵ£¬ ÓÐ ºÜ ¶à Ó¦ Óà ³Ì Ðò ¾Í ÊÇ Õâ Ñù ×ö µÄ¡£

¡¡¡¡Í¨ ¹ý µ÷ ÓÃWindows µÄAPI º¯ Êý ºÍ ·Ã ÎÊWindows ×¢ ²á ±í£¬ ¿É ÒÔ »ñ È¡ ´ó Á¿ µÄ ϵ ͳ ЊϢ¡£Delphi Ϊ ¾ø ´ó ¶à ÊýWindows API º¯ Êý Ìá ¹© ÁË µ÷ Óà ½Ó ¿Ú( ¿É ²Î ¼ûDELPHI3\SOURCE\RTL\WIN\windows.pas ÎÄ ¼þ)£¬ ²¢ Ìá ¹© ÁË Ò» ¸ö ¹¦ ÄÜ È« Ãæ µÄTRegistry À࣬ ʹ ÎÒ ÃÇ ¿É ÒÔ ·½ ±ã µÄ µ÷ ÓÃWindows API º¯ Êý ºÍ ·Ã ÎÊ ×¢ ²á ±í£¬ Àý È磺

¡¡¡¡1¡¢function GetDriveType(lpRootPathName: PChar): UINT; ·µ »Ø Ö¸ ¶¨ Çý ¶¯ Æ÷ µÄ Àà ÐÍ¡£

¡¡¡¡2¡¢function GetDiskFreeSpace(lpRootPathName: PChar; var lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters: DWORD): BOOL; ·µ »Ø Ö¸ ¶¨ Çý ¶¯ Æ÷ µÄ ×Ü ´Ø Êý¡¢ Ê£ Óà ´Ø Êý ¼° ÿ ´Ø ÉÈ Çø Êý¡¢ ÿ ÉÈ Çø ×Ö ½Ú Êý£¬ ´Ó ¶ø ¿É ÒÔ ¼Æ Ëã ³ö ×Ü ÈÝ Á¿ ºÍ Ê£ Óà ¿Õ ¼ä¡£

¡¡¡¡3¡¢function GetSystemMetrics(SM_CXSCREEN»ò SM_CYSCREEN): Integer; ·µ »Ø ÏÔ Ê¾ Æ÷ ·Ö ±æ ÂÊ¡£

¡¡¡¡4¡¢function GetSystemMetrics(SM_CMOUSEBUTTONS): Integer; ·µ »Ø Êó ±ê µÄ °´ ¼ü Êý Ä¿¡£

¡¡¡¡5¡¢ ÔÚwindows ×¢ ²á ±í µÄHKEY_LOCAL_MACHINE\ software\microsoft\windows\currentversion \RegisteredOwner Ö÷ ¼ü Ï ´æ ·Å ×ÅWindows °² ×° ʱ Êä Èë µÄ Óà »§ Ãû, ¿É Óà ÒÔ Ï Óï ¾ä ¶Á È¡¡£

myreg:=Tregistry.Create;
file://±ØÐëÔÚ³ÌÐòµ¥ÔªµÄuses²¿·Ö¼ÓÈëRegistry
myreg.RootKey:=HKEY_LOCAL_MACHINE;
if myreg.openkey('software\microsoft \windows\currentversion',false) then
¡¡memo1.lines.add(' ×¢²áÓû§Ãû: ' myreg.readstring('RegisteredOwner'));
¡¡myreg.closekey;
¡¡¡¡ÒÔ ÉÏ ½ö ¾Ù ¼¸ Àý£¬ »ñ È¡ Æä Ëû Ò» Щ ÐŠϢ µÄ ·½ ·¨ Óë ´Ë Àà ËÆ£¬ Ïê ¼û Ô´ ³Ì Ðò¡£

¡¡¡¡±¾ ³Ì Ðò ÔÚPwin95¡¢Delphi3 Ï µ÷ ÊÔ Í¨ ¹ý¡£

¡¡¡¡¸½: Ô´ ³Ì Ðò Çå µ¥¡£

unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Registry;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
i,x,y:integer;
ch:char; file://Çý¶¯Æ÷×Ö·û'A'~'Z'
buffer:string;
cpuinfo:TSYSTEMINFO; file://´æ·ÅϵͳÐÅÏ¢µÄ¼Ç¼ÀàÐÍ,ÔÚWindows.pasÖв鵽ÏêϸÄÚÈÝ¡£
meminfo:TMemoryStatus; file://´æ·ÅϵͳÄÚ´æÐÅÏ¢µÄ¼Ç¼ÀàÐÍ¡£
computername,username:pchar; file://¼ÆËã»úÃû³Æ¡¢Óû§Ãû
spc,bps,nofc,tnoc:longint; file://ÓÃÓÚ´æ·Å´ÅÅÌÈÝÁ¿µÄ±äÁ¿
myreg:Tregistry; file://ÓÃÓÚ·ÃÎÊ×¢²á±íµÄTRegistry±äÁ¿
begin
memo1.Lines.Clear;

for ch:='A' to 'Z' do begin
i:=getdrivetype(pchar(ch ':\'));
buffer:=' ' ch ': ';
case i of
DRIVE_UNKNOWN : buffer:=buffer 'δ֪ÀàÐÍ';
DRIVE_REMOVABLE: buffer:=buffer 'ÈíÅÌ';
DRIVE_FIXED : begin
buffer:=buffer 'Ó²ÅÌ';
if getdiskfreespace(pchar(ch ':\'),spc,bps,nofc,tnoc) then
begin
buffer:=buffer '×ÜÈÝÁ¿: ' inttostr((spc*bps*tnoc) div (1024*1024)) 'MB';
buffer:=buffer 'Ê£Óà: ' inttostr((spc*bps*nofc) div (1024*1024)) 'MB';
end;
end;
DRIVE_REMOTE : buffer:=buffer 'ÍøÂçÇý¶¯Æ÷';
DRIVE_CDROM :buffer:=buffer 'CD-ROMÇý¶¯Æ÷';
DRIVE_RAMDISK:buffer:=buffer 'RAMÐéÄâÇý¶¯Æ÷';
end;
if (ch >'D') and (i=1) then break;
if i< >1 then memo1.Lines.Add(buffer);
end;

case getkeyboardtype(0) of file://»ñÈ¡¼üÅÌÀàÐÍ
1: buffer:=' ¼üÅÌ: IBM PC/XT»ò¼æÈÝÀàÐÍ(83¼ü)';
2: buffer:=' ¼üÅÌ: Olivetti "ICO"(102¼ü)';
3: buffer:=' ¼üÅÌ: IBM PC/AT(84¼ü)';
4: buffer:=' ¼üÅÌ: IBMÔöÇ¿ÐÍ(101»ò102¼ü)';
5: buffer:=' ¼üÅÌ: Nokia 1050';
6: buffer:=' ¼üÅÌ: Nokia 9140';
7: buffer:=' ¼üÅÌ: Japanese';
end;
memo1.lines.add(buffer);

file://»ñÈ¡¼üÅ̹¦ÄܼüÊýÄ¿
memo1.lines.add(' ¹¦ÄܼüÊýÄ¿: ' inttostr(getkeyboardtype(2)));

memo1.Lines.add('ÏÔʾÆ÷·Ö±æÂÊ: ' inttostr(getsystemmetrics(SM_CXSCREEN)) 'x'
inttostr(getsystemmetrics(SM_CYSCREEN)));
file://»ñÈ¡Êó±ê°´¼üÊýÄ¿
memo1.Lines.add(' Êó±ê: ' inttostr(getsystemmetrics(SM_CMOUSEBUTTONS)) '¼ü');

globalmemorystatus(meminfo); file://»ñȡϵͳÄÚ´æÊýÁ¿
memo1.lines.add(' ÎïÀíÄÚ´æ: ' inttostr(meminfo.dwTotalPhys div 1024) ' KB');

i:=getsystemmetrics(SM_CLEANBOOT);
case i of
0:buffer:='ϵͳÆô¶¯Ä£Ê½:Õý³£Ä£Ê½';
1:buffer:='ϵͳÆô¶¯Ä£Ê½:±£»¤Ä£Ê½';
2:buffer:='ϵͳÆô¶¯Ä£Ê½:ÍøÂç±£»¤Ä£Ê½';
end;
memo1.lines.add(buffer);

x:=getsystemmetrics(SM_ARRANGE);
file://»ñȡϵͳ×îС»¯´°¿ÚµÄÆðʼλÖúÍÅÅÁз½Ê½
y:=x;
x:=x and 3;
y:=y and 12;
case x of
ARW_BOTTOMLEFT : buffer:=' ×îС»¯´°¿Ú:×Ô×óϽÇ';
ARW_BOTTOMRIGHT : buffer:=' ×îС»¯´°¿Ú:×ÔÓÒϽÇ';

ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!