| 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; |
| 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:=' 最小化窗口:自右下角'; ARW_TOPLEFT : buffer:=' 最小化窗口:自左上角'; ARW_TOPRIGHT : buffer:=' 最小化窗口:自右上角'; end; case y of ARW_LEFT : buffer:=buffer+'横向排列'; ARW_UP : buffer:=buffer+'纵向排列'; ARW_HIDE : buffer:=buffer+'隐藏'; end; memo1.lines.add(buffer); getmem(computername,255); file://获取计算机名称和用户名 getmem(username,255); i:=255; getcomputername(computername,i); memo1.lines.add(' 计算机名称: '+computername); getusername(username,i); memo1.lines.add(' 用户名: '+username); freemem(computername); freemem(username); getsysteminfo(cpuinfo); file://获取CPU类型 case cpuinfo.dwProcessorType of 386 : buffer:=' CPU类型: 386'; 486 : buffer:=' CPU类型: 486'; 586 : buffer:=' CPU类型: Pentium'; end; memo1.Lines.add(buffer); file://从注册表中获取CPU标识,Windows版本, 产品标识,注册单位名称及用户名 myreg:=Tregistry.Create; myreg.RootKey:=HKEY_LOCAL_MACHINE; if myreg.OpenKey('hardware\description\ system\centralprocessor\0',false) then memo1.lines.add(' CPU标识: '+myreg.ReadString('VendorIdentifier')); myreg.closekey; if myreg.openkey('software\microsoft\ windows\currentversion',false) then begin memo1.lines.add(' windows版本: '+myreg.ReadString('Version')); memo1.lines.add(' 版本号: '+myreg.ReadString('VersionNumber')+' '+myreg.ReadString('Subversionnumber')); memo1.lines.add(' 产品标识: '+myreg.Readstring('ProductID')); memo1.lines.add('注册单位名称: '+myreg.readstring('RegisteredOrganization')); memo1.lines.add(' 注册用户名: '+myreg.readstring('RegisteredOwner')); end; myreg.CloseKey; myreg.Free; end; end |
最新相关文章
发表评论