311 lines
8.7 KiB
ObjectPascal
311 lines
8.7 KiB
ObjectPascal
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.
|