Главная страница
Навигация по странице:

  • Ход выполнения работы

  • Результат выполнения программы

  • Вывод: В ходе выполнения работы мы создали программу, которая позволяет получить общую информации о характеристиках компьютера и операционной системы.КОНТРОЛЬНЫЕ ВОПРОСЫ

  • С помощью, какой функции можно получить информации о версии ОС Как получить информации о логическом диске

  • лабораторная. ЛАБОРАТОРНАЯ РАБОТА №1. Лабораторная работа 1 получение характеристик компьютера и операционной системы цель работы


    Скачать 102.87 Kb.
    НазваниеЛабораторная работа 1 получение характеристик компьютера и операционной системы цель работы
    Анкорлабораторная
    Дата09.05.2022
    Размер102.87 Kb.
    Формат файлаdocx
    Имя файлаЛАБОРАТОРНАЯ РАБОТА №1.docx
    ТипЛабораторная работа
    #519127

    ЛАБОРАТОРНАЯ РАБОТА № 1

    ПОЛУЧЕНИЕ ХАРАКТЕРИСТИК КОМПЬЮТЕРА И ОПЕРАЦИОННОЙ СИСТЕМЫ

    Цель работы

    Целью данной работы является изучение процедур и функций Win32, позволяющих получить общую информации о характеристиках компьютера и операционной системы.
    Ход выполнения работы

    Форма для выполнения работы



    Листингпрограммы

    unit Unit1;
    interface
    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, Registry;
    type

    TForm1 = class(TForm)

    GroupBox1: TGroupBox;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Button1: TButton;

    GroupBox2: TGroupBox;

    Edit5: TEdit;

    Button2: TButton;

    GroupBox3: TGroupBox;

    Label5: TLabel;

    Edit6: TEdit;

    Label6: TLabel;

    Edit7: TEdit;

    Label7: TLabel;

    Edit8: TEdit;

    Label8: TLabel;

    Edit9: TEdit;

    Label9: TLabel;

    Edit10: TEdit;

    Label10: TLabel;

    Edit11: TEdit;

    Label11: TLabel;

    Edit12: TEdit;

    procedureFormCreate(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;
    var

    Form1: TForm1;
    implementation
    {$R *.dfm}
    functionGetCPUSpeed: Double;

    const

    DelayTime = 500;

    var

    TimerHi: DWORD;

    TimerLo: DWORD;

    PriorityClass: Integer;

    Priority: Integer;

    begin

    PriorityClass :=GetPriorityClass(GetCurrentProcess);

    Priority :=GetThreadPriority(GetCurrentThread);

    SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);

    SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);

    Sleep(10);

    asm

    DW 310Fh // rdtsc

    MOV TimerLo, EAX

    MOV TimerHi, EDX

    end;

    Sleep(DelayTime);

    asm

    DW 310Fh // rdtsc

    SUB EAX, TimerLo

    SBB EDX, TimerHi

    MOV TimerLo, EAX

    MOV TimerHi, EDX

    end;

    SetThreadPriority(GetCurrentThread, Priority);

    SetPriorityClass(GetCurrentProcess, PriorityClass);

    Result:=TimerLo/(1000.0 * DelayTime);

    end;

    procedure TForm1.FormCreate(Sender: TObject);

    VAR

    v:TOSVERSIONINFO;

    reg:TRegistry;

    a:Array[0..255] of Char;

    begin

    Edit1.Text:='C:\';

    // Информацияобоперационнойсистеме

    v.dwOSVersionInfoSize:=Sizeof(OSVERSIONINFO);

    GetVersionEx(v);

    Edit6.Text:=IntToStr(v.dwMajorVersion)+'.'+IntToStr(v.dwMinorVersion);

    Edit7.Text:=IntToStr(v.dwBuildNumber);

    Edit8.Text:=v.szCSDVersion;

    casev.dwPlatformId of

    VER_PLATFORM_WIN32s: Edit9.Text:='Win32s on Windows 3.1.';

    VER_PLATFORM_WIN32_WINDOWS: Edit9.Text:='Win32 on Windows 95.';

    VER_PLATFORM_WIN32_NT: Edit9.Text:='Win32 on Windows NT.';

    end;

    // Определение, из какого каталога инсталлировалась Windows

    reg:=TRegistry.Create;

    reg.RootKey:=HKEY_LOCAL_MACHINE;

    reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Setup',false);

    Edit10.Text:=reg.ReadString('SourcePath');

    reg.CloseKey;

    reg.Free;

    // Системные каталоги

    GetSystemDirectory(@a,Sizeof(a));

    Edit11.Text:=a;

    GetWindowsDirectory(@a,Sizeof(a));

    Edit12.Text:=a;

    end;


    procedure TForm1.Button2Click(Sender: TObject);

    begin

    // Получениетактовойчастотыпроцессора

    Edit5.Text:=Format('CPU Speed: %f MHz',[GetCpuSpeed]);

    end;
    procedure TForm1.Button1Click(Sender: TObject);

    VAR

    SerialNum:DWORD;

    a,b:DWORD;

    Buffer,disk :Array[0..255]of char;

    begin

    StrPCopy(@disk,Edit1.text);

    if GetVolumeInformation(@disk,Buffer,sizeof(Buffer),@SerialNum,a,b,nil,0) then

    begin

    Edit2.Text:=IntToStr(SerialNum);

    Edit3.Text:=Buffer;

    Edit4.Text:=IntToStr(a);

    end;

    end;
    end.

    Результат выполнения программы


    Вывод:

    В ходе выполнения работы мы создали программу, которая позволяет получить общую информации о характеристиках компьютера и операционной системы.
    КОНТРОЛЬНЫЕ ВОПРОСЫ


    1. С помощью, какой функции можно получить информации о версии ОС?


    2. Как получить информации о логическом диске?


    3. С помощью какого объекта Delphi возможен программный доступ к реестру?


    4. Как получить информацию о системных каталогах Windows?

    5. Поясните различие между ассемблерными командами SUB и SBB.


    написать администратору сайта