📄 sysinfodemomain.pas
字号:
unit SysInfoDemoMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls;
type
TMainForm = class(TForm)
pageSysInfo: TPageControl;
btnUpdate: TButton;
btnOk: TButton;
tabSystemFolders: TTabSheet;
edtCommonFiles: TEdit;
Label1: TLabel;
edtCurrentFolder: TEdit;
Label2: TLabel;
edtProgramFiles: TEdit;
Label3: TLabel;
edtWindowsFolder: TEdit;
Label4: TLabel;
edtSystemFolder: TEdit;
Label5: TLabel;
edtTempFolder: TEdit;
Label6: TLabel;
tabCommonDirectories: TTabSheet;
Label30: TLabel;
Label22: TLabel;
Label23: TLabel;
edtCommonStartmenuFolder: TEdit;
edtCommonProgramsFolder: TEdit;
edtCommonDesktopDirectory: TEdit;
Label11: TLabel;
edtCommonFavoritesFolder: TEdit;
Label15: TLabel;
edtCommonStartupFolder: TEdit;
tabCurrentUser: TTabSheet;
Label7: TLabel;
Label9: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
edtDesktopFolder: TEdit;
edtProgramsFolder: TEdit;
edtPersonalFolder: TEdit;
edtFavoritesFolder: TEdit;
edtStartupFolder: TEdit;
Label8: TLabel;
edtRecentFilesFolder: TEdit;
Label16: TLabel;
edtSendToFolder: TEdit;
Label17: TLabel;
edtStartMenuFolder: TEdit;
Label24: TLabel;
Label25: TLabel;
edtAppdataFolder: TEdit;
edtPrintHoodFolder: TEdit;
Label10: TLabel;
Label18: TLabel;
edtDesktopDirectory: TEdit;
edtNethoodFolder: TEdit;
Label21: TLabel;
edtTemplatesFolder: TEdit;
Label20: TLabel;
edtFontsFolder: TEdit;
Label26: TLabel;
edtInternetCacheFolder: TEdit;
Label27: TLabel;
edtCookiesFolder: TEdit;
Label28: TLabel;
edtHistoryFolder: TEdit;
tabAPM: TTabSheet;
edtBatteryLifeTime: TEdit;
Label19: TLabel;
Label29: TLabel;
edtBatteryFullLifeTime: TEdit;
Label31: TLabel;
Label32: TLabel;
edtBatteryLineStatus: TEdit;
Label33: TLabel;
edtBatteryFlag: TEdit;
pgrsBatteryLife: TProgressBar;
lblAPMPlatforms: TLabel;
tabMemory: TTabSheet;
Label34: TLabel;
edtMaxAppAddress: TEdit;
Label35: TLabel;
edtMinAppAddress: TEdit;
Label36: TLabel;
pgrsMemLoad: TProgressBar;
Label37: TLabel;
edtSwapFileSize: TEdit;
Label38: TLabel;
pgrsSwapFileUsage: TProgressBar;
Label39: TLabel;
edtPhysicalTotal: TEdit;
edtPhysicalFree: TEdit;
Label40: TLabel;
Label41: TLabel;
edtVirtualTotal: TEdit;
edtVirtualFree: TEdit;
Label42: TLabel;
Label43: TLabel;
edtPageFileTotal: TEdit;
edtPageFileFree: TEdit;
Label44: TLabel;
tabKeyboard: TTabSheet;
Label45: TLabel;
edtNumLockState: TEdit;
Label46: TLabel;
edtCapsLockState: TEdit;
Label47: TLabel;
edtScrollLockState: TEdit;
tabIdentification: TTabSheet;
grpBIOS: TGroupBox;
Label48: TLabel;
edtBIOSName: TEdit;
Label49: TLabel;
edtBIOSCopyright: TEdit;
Label50: TLabel;
edtBIOSExtendedInfo: TEdit;
Label51: TLabel;
edtBIOSDate: TEdit;
grpNetwork: TGroupBox;
Label52: TLabel;
edtIPAddress: TEdit;
Label53: TLabel;
lbMACAddresses: TListBox;
Label54: TLabel;
edtDomain: TEdit;
tabProcesses: TTabSheet;
Label55: TLabel;
lbProcesses: TListBox;
GroupBox1: TGroupBox;
Label56: TLabel;
edtUserName: TEdit;
Label57: TLabel;
edtRegisteredCompany: TEdit;
Label58: TLabel;
edtRegisteredOwner: TEdit;
TasksListBox: TListBox;
Label59: TLabel;
Bevel1: TBevel;
Label60: TLabel;
LabelSysResources: TLabel;
procedure FormCreate(Sender: TObject);
procedure btnOkClick(Sender: TObject);
procedure btnUpdateClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
procedure UpdateGUI;
public
end;
var
MainForm: TMainForm;
implementation
uses
JclSysInfo, Registry;
{$R *.DFM}
procedure TMainForm.FormCreate(Sender: TObject);
begin
pageSysInfo.ActivePage := tabSystemFolders;
end;
procedure TMainForm.FormShow(Sender: TObject);
begin
UpdateGUI;
end;
procedure TMainForm.btnOkClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TMainForm.UpdateGUI;
begin
// Directories
edtCommonFiles.Text := GetCommonFilesFolder;
edtCurrentFolder.Text := GetCurrentFolder;
edtProgramFiles.Text := GetProgramFilesFolder;
edtWindowsFolder.Text := GetWindowsFolder;
edtSystemFolder.Text := GetWindowsSystemFolder;
edtTempFolder.Text := GetWindowsTempFolder;
edtDesktopFolder.Text := GetDesktopFolder;
edtProgramsFolder.Text := GetProgramsFolder;
edtPersonalFolder.Text := GetPersonalFolder;
edtFavoritesFolder.Text := GetFavoritesFolder;
edtStartupFolder.Text := GetStartupFolder;
edtRecentFilesFolder.Text := GetRecentFolder;
edtSendToFolder.Text := GetSendToFolder;
edtStartMenuFolder.Text := GetStartmenuFolder;
edtDesktopDirectory.Text := GetDesktopDirectoryFolder;
edtNethoodFolder.Text := GetNethoodFolder;
edtFontsFolder.Text := GetFontsFolder;
edtTempFolder.Text := GetTemplatesFolder;
edtCommonStartmenuFolder.Text := GetCommonStartmenuFolder;
edtCommonProgramsFolder.Text := GetCommonProgramsFolder;
edtCommonStartupFolder.Text := GetCommonStartupFolder;
edtCommonDesktopDirectory.Text := GetCommonDesktopdirectoryFolder;
edtAppdataFolder.Text := GetAppdataFolder;
edtPrintHoodFolder.Text := GetPrinthoodFolder;
edtCommonFavoritesFolder.Text := GetCommonFavoritesFolder;
edtInternetCacheFolder.Text := GetInternetCacheFolder;
edtCookiesFolder.Text := GetCookiesFolder;
edtHistoryFolder.Text := GetHistoryFolder;
// APM is only available on Windows 9x / Win2K / WinXP
if GetWindowsVersion in [wvWinNT31, wvWinNT35, wvWinNT351, wvWinNT4] then
lblAPMPlatforms.Visible := true
else
begin
lblAPMPlatforms.Visible := false;
edtBatteryLifetime.Text := IntToStr(GetAPMBatteryLifeTime);
edtBatteryFullLifeTime.Text := IntToStr(GetAPMBatteryFullLifeTime);
pgrsBatteryLife.Position := GetAPMBatteryLifePercent;
end;
// Memory
edtMaxAppAddress.Text := IntToHex(GetMaxAppAddress, 8);
edtMinAppAddress.Text := IntToHex(GetMinAppAddress, 8);
pgrsMemLoad.Position := GetMemoryLoad;
edtSwapFileSize.Text := IntToStr(GetSwapFileSize);
pgrsSwapFileUsage.Position := GetSwapFileUsage;
edtPhysicalTotal.Text := IntToStr(GetTotalPhysicalMemory);
edtPhysicalFree.Text := IntToStr(GetFreePhysicalMemory);
edtVirtualTotal.Text := IntToStr(GetTotalVirtualMemory);
edtVirtualFree.Text := IntToStr(GetFreeVirtualMemory);
edtPageFileTotal.Text := IntToStr(GetTotalPageFileMemory);
edtPageFileFree.Text := IntToStr(GetFreePageFileMemory);
if IsWinNT then
LabelSysResources.Caption := 'System resources meter is not available on NT systems'
else
if not IsSystemResourcesMeterPresent then
LabelSysResources.Caption := 'System resources meter tool is not installed'
else
with GetFreeSystemResources do
LabelSysResources.Caption := Format('User: %d%%, System: %d%%, Gdi: %d%%', [UserRes, SystemRes, GdiRes]);
// Keyboard
if GetNumLockKeyState = true then
edtNumLockState.Text := 'ON'
else
edtNumLockState.Text := 'OFF';
if GetScrollLockKeyState = true then
edtScrollLockState.Text := 'ON'
else
edtScrollLockState.Text := 'OFF';
if GetCapsLockKeyState = true then
edtCapsLockState.Text := 'ON'
else
edtCapsLockState.Text := 'OFF';
// BIOS
if IsWinNT then begin
grpBIOS.Caption := ' BIOS (Currently only availabe under Windows 9x) ';
edtBIOSDate.Text := DateToStr(GetBiosDate);
end
else begin
edtBIOSName.Text := GetBIOSName;
edtBIOSCopyright.Text := GetBiosCopyright;
edtBIOSExtendedInfo.Text := GetBIOSExtendedInfo;
end;
// Network Identification
edtIPAddress.Text := GetIPAddress(GetLocalComputerName);
GetMacAddresses(GetLocalComputerName, lbMACAddresses.Items);
edtDomain.Text := GetDomainName;
// User Identification
edtUserName.Text := GetLocalUserName;
edtRegisteredCompany.Text := GetRegisteredCompany;
edtRegisteredOwner.Text := GetRegisteredOwner;
// Processes
lbProcesses.Items.BeginUpdate;
try
lbProcesses.Items.Clear;
RunningProcessesList(lbProcesses.Items);
finally
lbProcesses.Items.EndUpdate;
end;
// Tasks
TasksListBox.Items.BeginUpdate;
try
TasksListBox.Items.Clear;
GetTasksList(TasksListBox.Items);
finally
TasksListBox.Items.EndUpdate;
end;
end;
procedure TMainForm.btnUpdateClick(Sender: TObject);
begin
UpdateGUI;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -