2011-01-14 3 views
2

У меня есть всплывающее меню. Каждый раз, когда пользователи регистрируются в системе, во всплывающем меню появляется , но для пользователей, которые не хотят, чтобы это всплывающее окно появлялось на их экране я использую флажок, чтобы всплывающее окно не появлялось при каждом входе в систему. как я хочу сохранить настройки в реестре для пользователей, которые установили флажок, чтобы не появилось всплывающее менюкод для сохранения настроек в реестре

+0

только Google «Дельфийский реестр» и первый удар - это именно то, что вы хотите –

+0

Запись в реестр - довольно плохая практика (если вы не будете nt, чтобы изменить настройки ОС, но даже в этом случае это не очень хорошая идея, если вы не знаете, что делаете, исходя из вашего вопроса, я думаю, вы этого не делаете - не обижайтесь !!), я ненавижу приложения, которые смешиваются с ОС, пожалуйста, подумайте об использовании конфигурационных файлов: ini, xml и т. Д. – ComputerSaysNo

+0

@Dorin: реестр только что позволяет приложениям записывать данные на него, а не изобретать велосипед. Если вам это не нравится, это нормально ... Я жажду использовать его, когда я надеюсь (надеюсь) и приложение скомпилироваться на другие платформы (в будущих выпусках delphi), но когда я заранее знаю, что приложение предназначено только для окон, я с радостью его использую. – jachguate

ответ

5

Вы можете использовать класс TRegistry для чтения/сохранения значений из/в реестр.
См. Справку; Есть несколько примеров использования.

Для чтения некоторые, как этот:

RegNGFS:= TRegistry.Create; 
    try 
    RegNGFS.RootKey := HKEY_CURRENT_USER; 
    if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then begin 
     MaxSteps:= RegNGFS.ReadInteger('MaxSteps'); 
     StopIN:= RegNGFS.ReadInteger('StopIN'); 
    end; 
    finally 
    RegNGFS.Free; 
    end; 

Для записи, некоторые, как это:

RegNGFS:= TRegistry.Create; 
    try 
    RegNGFS.RootKey := HKEY_CURRENT_USER; 
    if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then begin 
     RegNGFS.ReadInteger('MaxSteps', MaxSteps); 
     RegNGFS.ReadInteger('StopIN', StopIN); 
    end; 
    finally 
    RegNGFS.Free; 
    end; 

Вы тест некоторые методы, такие как WriteBool, ReadBool, ReadString, WriteString, ...
С уважением

+9

HKEY_LOCAL_MACHINE? Является ли он еще 1995 годом, и кто-то забыл мне сказать? !!Серьезно, пользовательские настройки идут по HKEY_CURRENT_USER по многим причинам, не последним из которых является то, что пользователи вообще не имеют доступа на запись к HKEY_LOCAL_MACHINE. Кроме того, код записи должен писать, а не читать. –

+4

@ Давид Хеффернан; Пожалуйста, это очень простой пример, чтобы увидеть класс TRegistry и методы сохранения/записи. Пользователь должен указать правильный ключ для сохранения значений. –

+3

@ Нефели Хорошо, но он разбит множеством способов. Чтение не будет выполнено, если значения не существуют. Более того, в вашем примере кода нет записей. Он не компилируется. Да, я знаю, что вы имеете в виду, но вы можете немного изменить код. А что касается HKLM/HKCU, то для простого примера было бы целесообразно выбрать тот, который не требует прав и фактически будет соответствовать требованиям OP. –

Смежные вопросы