![Старый](images/statusicon/post_old.gif)
30.07.2014, 09:22
|
Прохожий
|
|
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
|
|
Присвоить получаемые значения с реестра в memo
Всем добрый день!
Помогите реализовать задуманное, необходимо присвоить получаемые значения с реестра в memo. необходимо не считывать с созданного файла информацию а получить ее сразу в memo по нажатию на кнопку.
вот исходный код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
WinVers = 'Software\Microsoft\Windows\CurrentVersion';
function WinInfo(Root_Key: HKEY; Key_Open, Key_Read: string): string;
var
registry: TRegistry;
begin
//если Windows NT, открываем другой ключ
if ((GetVersion and $80000000)=0) and (Key_Open=WinVers) then
Key_Open:='SOFTWARE\Microsoft\Windows NT\CurrentVersion';
Registry := TRegistry.Create;
try
Registry.RootKey := Root_Key;
Registry.OpenKey(Key_Open, False);
Result := Registry.ReadString(Key_Read);
finally
Registry.Free;
end;
//если ничего не найдено, выводим "невозможно определить"
if Result<>EmptyStr then Result:=Key_read+': '+Result else Result:=Key_read+': невозможно определить';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
F: textfile; //файл с логом
begin
AssignFile(F,'Информация о системе.txt'); //Соединямся с файлом лога
ReWrite(F); //Переходим в начало файла
//пользователь, версия ОС и т.д.
WriteLn(F,' О Системе:');
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'RegisteredOwner'));
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'RegisteredOrganization'));
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductID'));
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductKey'));
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductName'));
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'Version'));
WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'VersionNumber'));
CloseFile(F);
end;
end.
Последний раз редактировалось Daniil, 30.07.2014 в 10:15.
|