Содержание материала

Структура SYSTEM_INFO содержит сведения о текущей системе компьютера. Это включает в себя архитектуру и Тип процессора, количество

процессоры в системе, размер страницы, и другая такая информация.

 

Code:

 

procedure TForm1.Button1Click(Sender: TObject);

var

  SysInfo: TSystemInfo;

begin

  GetSystemInfo(SysInfo);

  with ListBox1.Items, SysInfo do

  begin

    Add('ProcessorArchitecture:' + IntToStr(wProcessorArchitecture));

    Add(FloatToStr(dwPageSize) + ' Kb page size');

    Add(Format('Lowest memory address accessible to applications and DLL - %p',

      [lpMinimumApplicationAddress]));

    Add(Format('Highest memory address accessible to applications and DLL - %p',

      [lpMaximumApplicationAddress]));

    Add('OEMID:' + IntToStr(dwOemId));

    Add('ActiveProcessorMask:' + IntToStr(dwActiveProcessorMask));

    Add(IntToStr(dwNumberOfProcessors) + ' - number of processors');

    Add('ProcessorType:' + IntToStr(dwProcessorType));

    case wProcessorLevel of

      3: Add('Intel 80386 processor level');

      4: Add('Intel 80486 processor level');

      5: Add('Intel Pentium processor level');

    end;

    Add(FloatToStr(dwAllocationGranularity / 1024) +

      ' Kb - granularity with which virtual memory is allocated');

    Add('ProcessorRevision:' + IntToStr(wProcessorRevision));

  end;

end;

 


Часто при создании систем привязки программ к компьютеру или окон типа System Info или About Box необходимо определить данные о пользователе и о системе. Это можно сделать следующим образом (из примеров по Delphi - программа COA):

 

Code:

...

Buffer : Array[0..30] of Char;    // Буфер под ASCIIZ строку

begin

// Открыли библиотеку User

hInstUser := LoadLibrary('USER');     

LoadString(hInstUser, 514, Buffer, 30);

// Имя пользователя

LabelUserName.Caption := StrPas(Buffer);

LoadString(hInstUser, 515, Buffer, 30);

FreeLibrary(hInstUser);

// Компания

LabelCompName.Caption := StrPas(Buffer);

WinVer := GetVersion;

// Версия Windows

LabelWinVer.Caption := Format('Windows %u.%.2u',

       [LoByte(LoWord(WinVer)), HiByte(LoWord(WinVer))]);

// Версия DOS

LabelDosVer.Caption := Format('DOS %u.%.2u',

       [HiByte(HiWord(WinVer)), LoByte(HiWord(WinVer))]);

WinFlags := GetWinFlags;

// Режим

IF WinFlags AND WF_ENHANCED > 0 THEN

  LabelWinMode.Caption := '386 Enhanced Mode'

ELSE IF WinFlags AND WF_PMODE > 0 THEN

  LabelWinMode.Caption := 'Standard Mode'

ELSE LabelWinMode.Caption := 'Real Mode';

// Сопроцессор

IF WinFlags AND WF_80x87 > 0 THEN

ValueMathCo.Caption := 'Present'

ELSE ValueMathCo.Caption := 'Absent';

 

// Свободно ресурсов

Fmt := GetFreeSystemResources(GFSR_SYSTEMRESOURCES);

ValueFSRs.Caption := Format('%d%% Free', [Fmt1]);

// Свободно памяти

ValueMemory.Caption := FormatFloat(',#######', MemAvail DIV

1024) + ' KB Free';

end;

 

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить