📄 sysinfounit.pas
字号:
unit SysInfoUnit;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, ComCtrls, FileCtrl,Dialogs;
type
Tsysinfoform = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Memo1: TMemo;
Label7: TLabel;
DriveComboBox1: TDriveComboBox;
Edit1: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit2: TEdit;
Label11: TLabel;
Edit3: TEdit;
procedure TabSheet2Show(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure DriveComboBox1Change(Sender: TObject);
private
function getdiskvolserialID(Drivername:string):dword;
end;
var
sysinfoform: Tsysinfoform;
implementation
{$R *.DFM}
function Tsysinfoform.getdiskvolserialID(Drivername: string): dword;
var
dwtemp1,dwtemp2:dword;
Nresult:pdword;
begin
new(Nresult);
getvolumeinformation(pchar(Drivername+':\'),nil,0,nresult,dwtemp1,dwtemp2,nil,0);
result:=nresult^;
dispose(nresult);
end;
procedure Tsysinfoform.TabSheet1Show(Sender: TObject);
var computername:pchar;
size:dword;
begin
getmem(computername,255);
size:=255;
if getcomputername(computername,size) then
label7.Caption:='计算机名称:'+computername;
freemem(computername);
end;
procedure Tsysinfoform.TabSheet2Show(Sender: TObject);
var sysinfo:system_info;
begin
getsysteminfo(sysinfo);
label1.Caption:='处理器个数:'+inttostr(sysinfo.dwnumberofprocessors)+'个';
label2.Caption:='活动处理器:'+inttostr(sysinfo.dwactiveprocessormask);
label3.Caption:='处理器类型:'+inttostr(sysinfo.dwprocessorType);
label4.Caption:='页面大 小:'+inttostr(sysinfo.dwpagesize);
label5.Caption:='处理器级别:'+inttostr(sysinfo.wprocessorlevel);
label6.Caption:='处理器版本:'+inttostr(sysinfo.wprocessorrevision);
end;
procedure Tsysinfoform.TabSheet3Show(Sender: TObject);
var meminfo:memorystatus;
begin
meminfo.dwLength:=sizeof(memorystatus);
globalmemorystatus(meminfo);
with memo1.Lines do
begin
Add(inttostr(meminfo.dwMemoryLoad)+'% 的内存在使用');
add('物理内存共有: '+inttostr(meminfo.dwTotalPhys)+' 字节');
add('未使用的物理内存有: '+inttostr(meminfo.dwAvailPhys)+' 字节');
add('交换文件的大小为: '+inttostr(meminfo.dwTotalPageFile)+' 字节');
add('未使用的交换文件的大小为: '+inttostr(meminfo.dwAvailPageFile)+' 字节');
add('虚拟内存空间的大小为: '+inttostr(meminfo.dwTotalVirtual)+' 字节');
add('未使用虚拟内存空间的大小为: '+inttostr(meminfo.dwAvailVirtual)+' 字节');
end;
end;
procedure Tsysinfoform.DriveComboBox1Change(Sender: TObject);
var sec1,byt1,cl1,cl2:longword;
drivername:string;
begin
edit1.Text:=inttostr(getdiskvolserialID(DRivecombobox1.Drive));
drivername:=Drivecombobox1.Drive+':';
getdiskfreespace(pchar(drivername),sec1,byt1,cl1,cl2);
cl1:=cl1*sec1*byt1;
cl2:=cl2*sec1*byt1;
edit2.Text:=formatfloat('###,##0',cl2);
edit3.Text:=formatfloat('###,##0',cl1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -