Karbid87
16-02-2014, 23:00
Здравствуйте. Прошу помощи. Я пытаюсь добавить значения в реестр, но не получается.
Вот что есть :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
// Переменная для работы с реестром
Reg: TRegistry;
begin
// Инициализация переменной реестра
Reg := TRegIniFile.Create();
// Выбираем корневой каталог
Reg.RootKey := HKEY_LOCAL_MACHINE;
// Открываем разделы
Reg.OpenKey('SOFTWARE\Programma\Razdel', True);
// Записываем значение
// Ниже строковые
Reg.WriteString('DataFolder', 'C:\\ProgramData\\Programma\\Razdel');
Reg.WriteString('ProgramFolder', 'C:\\Program Files\\Programma\\Razdel');
Reg.WriteString('SetupFolder', 'C:\\Program Files\\Programma\\Razdel\\setup');
Reg.WriteString('SetupLog', 'C:\\ProgramData\\Programma\\Razdel\\Log.log');
Reg.WriteString('Version', '1.0');
// Параметр DWORD (32 бита)
Reg.WriteExpandString('SetupVersion', '000000a1');
// Тут надо мультистроковый (REG_MULTI_SZ)
// Тут надо двоичный параметр (REG_BINARY)
// Закрываем ключ
Reg.CloseKey;
// Освобождаем память
Reg.Free;
end;
end.
Еще на форме будет несколько кнопок. Расположены и действовать они будут следующим образом:
Button1 - для Windows 7 x64
Button2 - для Windows 7 x86
Button3 - для Windows 8 x64
Button4 - для Windows 8 x64
Button5 - для Windows XP
Для каждой кнопки свои значения. Сейчас в коде прописаны действия для Button1. Необходимо еще написать несколько процедур для проверки Windows и разрядности. И по этим результатам ненужные кнопки были бы неактивны, но видимы.
Был бы очень благодарен за помощь.
Вот что есть :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
// Переменная для работы с реестром
Reg: TRegistry;
begin
// Инициализация переменной реестра
Reg := TRegIniFile.Create();
// Выбираем корневой каталог
Reg.RootKey := HKEY_LOCAL_MACHINE;
// Открываем разделы
Reg.OpenKey('SOFTWARE\Programma\Razdel', True);
// Записываем значение
// Ниже строковые
Reg.WriteString('DataFolder', 'C:\\ProgramData\\Programma\\Razdel');
Reg.WriteString('ProgramFolder', 'C:\\Program Files\\Programma\\Razdel');
Reg.WriteString('SetupFolder', 'C:\\Program Files\\Programma\\Razdel\\setup');
Reg.WriteString('SetupLog', 'C:\\ProgramData\\Programma\\Razdel\\Log.log');
Reg.WriteString('Version', '1.0');
// Параметр DWORD (32 бита)
Reg.WriteExpandString('SetupVersion', '000000a1');
// Тут надо мультистроковый (REG_MULTI_SZ)
// Тут надо двоичный параметр (REG_BINARY)
// Закрываем ключ
Reg.CloseKey;
// Освобождаем память
Reg.Free;
end;
end.
Еще на форме будет несколько кнопок. Расположены и действовать они будут следующим образом:
Button1 - для Windows 7 x64
Button2 - для Windows 7 x86
Button3 - для Windows 8 x64
Button4 - для Windows 8 x64
Button5 - для Windows XP
Для каждой кнопки свои значения. Сейчас в коде прописаны действия для Button1. Необходимо еще написать несколько процедур для проверки Windows и разрядности. И по этим результатам ненужные кнопки были бы неактивны, но видимы.
Был бы очень благодарен за помощь.