Получение информации о диске (имя диска; серийный номер; размер буфера) с помощью среды программирования Delphi.




Получить информацию об операционной системе (платформа Windows; версия Service Pack) с помощью среды программирования Delphi.

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Label3: TLabel;

Label4: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var

g: OSVERSIONINFO;

begin

g.dwOSVersionInfoSize:= sizeof(g);

GetVersionEx(g);

Label1.Caption:= 'Версия ОС: ' + IntToStr(g.dwMajorVersion)+ '.'+

IntToStr(g.dwMinorVersion)+' номер сборки '+ IntToStr(g.dwBuildNumber);

Label2.Caption:= 'Размер структуры: '+IntToStr(g.dwOSVersionInfoSize)+' байт';

 

Label3.Caption:= 'платформа Win: '+ IntToStr(g.dwPlatformId);

Label4.Caption:= ''+ g.szCSDVersion;

 

end;

 

procedure TForm1.FormShow(Sender: TObject);

begin

Button1.Click;

end;

Получить информацию из реестра с помощью среды программирования Delphi.

interface

uses

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

Dialogs, registry, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

ListBox1: TListBox;

ListBox2: TListBox;

Button2: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ListBox1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure ListBox2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

reg: TRegistry;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var

s: TStrings;

r: TRegDataInfo;

t: String;

r1: TRegKeyInfo;

x: Integer;

begin

reg:= TRegistry.Create;

s:= TStringList.Create;

reg.RootKey:= HKEY_LOCAL_MACHINE;

reg.OpenKeyReadOnly('Software');

//t:= reg.ReadString('flash');

reg.GetKeyInfo(r1);

 

s.Capacity:= r1.NumSubKeys;

//for x:= 1 to r1.NumSubKeys+1 do

//s.Append('');

 

reg.GetKeyNames(s);

 

try

for x:= 0 to s.Capacity-1 do

ListBox1.Items.Add(s[x]);

except

end;

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

reg.CloseKey;

reg.Destroy;

end;

 

procedure TForm1.ListBox1Click(Sender: TObject);

var

s: string;

ss: TStrings;

x: Integer;

q: TRegKeyInfo;

begin

ListBox2.Clear;

ss:= TStringList.Create;

s:= ListBox1.Items.Strings[ListBox1.ItemIndex];

reg.OpenKeyReadOnly(s);

reg.GetKeyInfo(q);

ss.Capacity:= q.NumValues;

reg.GetValueNames(ss);

try

for x:= 0 to q.NumValues-1 do

ListBox2.Items.Add(ss[x]);

except

end;

//reg.OpenKeyReadOnly('Software');

Button1.Click;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

ListBox1.Clear;

Button1.Click;

end;

procedure TForm1.ListBox2Click(Sender: TObject);

var

s,s1,t: string;

ss: TStrings;

x: Integer;

q: TRegKeyInfo;

begin

try

s:= ListBox1.Items.Strings[ListBox1.ItemIndex];

s1:= ListBox2.Items.Strings[ListBox2.ItemIndex];

reg.OpenKeyReadOnly(s);

t:= reg.ReadString(s1);

Label1.Caption:= 'Значение: ' + t;

except

end;

7 Получение информации о системных каталогах Windows (имя системного ката­лога; размер буфера) с помощью среды программирования Delphi.

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormShow(Sender: TObject);

var

buf: array [0..255] of char;

begin

GetSystemDirectory(@buf,sizeof(buf));

Label1.Caption:= buf;

Label2.Caption:= 'размер буфера: ' + IntToStr(sizeof(buf)) + ' бит';

end;

 

end.

 

Получение информации о диске (имя диска; серийный номер; размер буфера) с помощью среды программирования Delphi.

interface

 

uses

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

Dialogs, StdCtrls, FileCtrl;

 

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

DriveComboBox1: TDriveComboBox;

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormShow(Sender: TObject);

var

RootPath: Pchar;

VolumenameBUF: array [0..255] of Pchar;

VolumenameSIZE: Cardinal;

VolumeSerialNum: DWORD;

MaxComponentLenth: Cardinal;

filesysFlags: Cardinal;

FileSysNameBuf: array [0..255] of Pchar;

FileSysNameSize: Cardinal;

begin

RootPath:= Pchar(DriveComboBox1.Drive+':\');

VolumenameSIZE:= sizeof(VolumenameBUF);

GetVolumeInformation(RootPath,@VolumenameBUF,VolumenameSIZE,@VolumeSerialNum,

MaxComponentLenth,filesysFlags,@FileSysNameBuf,FileSysNameSize);

Memo1.Clear;

Memo1.Lines.Add('Имя диска '+DriveComboBox1.Drive+':\');

Memo1.Lines.Add('Серийный номер'+IntToStr(VolumeSerialNum));

Memo1.Lines.Add('Размер буфера'+IntToStr(sizeof(FileSysNameBuf)));

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.OnShow(nil)

end;

 

 

9-13 9 Получить информацию о состоянии системной памяти и виртуального адресного пространства заданного процесса с помощью среды программирования Delphi.

10Напрямую зарезервировать регион адресного пространства с помощью среды программирования Delphi.

 

11Передать зарезервированному региону физическую память с помощью среды программирования Delphi.

12Освободить регионы адресного пространства с помощью среды программиро­вания Delphi.

13Изменить атрибуты защиты страниц виртуальной памяти с помощью среды программирования Delphi.

 

interface

 

uses

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

Dialogs, StdCtrls, ExtCtrls;

 

type

TForm1 = class(TForm)

Memo1: TMemo;

Timer1: TTimer;

Edit1: TEdit;

GroupBox1: TGroupBox;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

GroupBox2: TGroupBox;

Label3: TLabel;

Label4: TLabel;

Button2: TButton;

procedure FormShow(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormShow(Sender: TObject);

var

r: SYSTEM_INFO;

s: MEMORYSTATUS;

Process: THandle;

Address: Pointer;

Buffer: TMemoryBasicInformation;

uLength: Cardinal;

begin

Memo1.Clear;

s.dwLength:= sizeof(s);

GlobalMemoryStatus(s);

GetSystemInfo(r);

Memo1.Lines.Add('Всего памяти: '+IntToStr(s.dwTotalPhys));

Memo1.Lines.Add('Загрузка памяти: '+IntToStr(s.dwAvailPhys));

Process:= StrToInt(Edit1.Text);

Address:= r.lpMinimumApplicationAddress;

 

VirtualQueryEx(Process,Address,Buffer,sizeof(Buffer));

 

Memo1.Lines.Add('');

Memo1.Lines.Add(''+IntToStr(Buffer.RegionSize));

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Form1.OnShow(nil);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

x: Integer;

p: Pointer;

y: DWORD;

begin

p:= VirtualAlloc(nil,sizeof(x),MEM_RESERVE,PAGE_READONLY);

y:= DWORD(@p);

Label1.Caption:= 'начальный адрес: '+ IntToStr(y);

Label2.Caption:= 'объем памяти: ' + IntToStr(sizeof(p))+' байт';

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var

x: Integer;

p: Pointer;

y: DWORD;

f: byte;

begin

 

p:= VirtualAlloc(nil,sizeof(x),MEM_COMMIT,PAGE_READONLY);

VirtualProtect(p,sizeof(x),PAGE_READWRITE,@f);

VirtualLock(p,sizeof(x));

y:= DWORD(@p);

Label3.Caption:= 'начальный адрес: '+ IntToStr(y);

Label4.Caption:= 'объем памяти: ' + IntToStr(sizeof(p))+' байт';

 

VirtualUnlock(p,sizeof(x));

VirtualFree(p,sizeof(x),MEM_DECOMMIT);

 

14 Получить параметры виртуальных кодов клавиш и символов алфавитно-
цифровой группы клавиатуры (ASCII-код) с помощью среды программирования

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

procedure FormKeyPress(Sender: TObject; var Key: Char);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure h;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

k: Word;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);

begin

Label1.Caption:= 'нажата клавиша: ' + key;

h;

end;

 

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

k:= Key;

Label2.Caption:= 'код нажатой клавиши: '+ IntToStr(key);

h;

end;

 

procedure TForm1.h;

begin

if k = 13 then Label1.Caption:= 'нажата клавиша: Enter';

if k = 18 then Label1.Caption:= 'нажата клавиша: Atl';

if k = 17 then Label1.Caption:= 'нажата клавиша: Ctrl';

if k = 32 then Label1.Caption:= 'нажата клавиша: Spase';

end;



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: