Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2009, 17:46   #1
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию [Delphi] Работа с реестром несколько раз (с помощью одной переменной)

reg:TRegistry;

Код:
 reg:=TRegistry.Create;
 reg.RootKey:=HKEY_LOCAL_MACHINE;

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

 if reg.KeyExists('InstallStatus')=false then
  begin
    reg.WriteBool('InstallStatus',false);
  end;

 if reg.ReadBool('InstallStatus')=false then
  begin
    reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
    reg.WriteString('DumperWindows',Application.ExeName);
  end;
Т.е. у меня записыватся "InstallStatus" (false) в ветку "Software\Microsoft\Windows\Current Version"

А вот reg.WriteString не хочет делаться, хотя и installstatus имеет результат false

Собственно вопрос, можно ли работать с помощью 1 переменной (типа TRegistry) ходить по реестру и изменять то что надо? Если да то что я не так делаю в коде?
zotox вне форума Ответить с цитированием
Старый 26.08.2009, 00:44   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вот что то типа такого:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  reg:TRegistry;
begin
 reg:=TRegistry.Create;
 reg.RootKey:=HKEY_LOCAL_MACHINE;

 reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\InstallStatus',true);
 reg.WriteBool('InstallStatus',false);

 if reg.ReadBool('InstallStatus')=false then
  begin
    reg.CloseKey;
    reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
    reg.WriteString('DumperWindows',Application.ExeName);
    reg.CloseKey;
  end;
reg.Free;
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 26.08.2009, 00:58   #3
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Вот так :
Код:
var
 Reg: TRegistry;
begin
 Reg:=TRegistry.Create;
 Reg.RootKey:= HKEY_LOCAL_MACHINE;
try
 Reg.OpenKey('SoftWare\Microsoft\Windows\CurrentVersion\InstallStatus',True);
 if Reg.KeyExists('InstallStatus') = False then
 Reg.WriteBool('InstallStatus',false);
finally
 if reg.ReadBool('InstallStatus')= False then
begin
 Reg.CloseKey;
 Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
 Reg.WriteString('DumperWindows',Application.ExeName);
end;
 Reg.CloseKey;
 Reg.Free;
end;
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с реестром в Delphi Oleg Romanchuk Общие вопросы Delphi 10 02.08.2010 01:41
C#: Передать значение переменной из одной формы в другую Veiron Общие вопросы .NET 3 29.06.2009 17:43
Несколько функций в одной процедуре? nePirat Помощь студентам 2 04.05.2009 11:42
Как зарегистрировать несколько раз в реестре Volkogriz Общие вопросы Delphi 5 14.01.2009 16:42
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 20:47