Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.05.10;
Скачать: [xml.tar.bz2];

Вниз

Чтение из реестра   Найти похожие ветки 

 
alexdn ©   (2014-02-13 20:38) [0]

У меня уже волосы дыбом встают, в одном проекте код работает, в другом нет (при пошаговой отладке), прямо волшебство какое-то.. Что здесь может быть не так?
var Reg:TRegistry;
               Regstr:string;

Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey("\SOFTWARE\тратата",TRUE);
Regstr:=Reg.ReadString("STR");
Reg.CloseKey;
Reg.Free;


 
Rouse_ ©   (2014-02-13 20:44) [1]

Оть тут скорее всего:


> Reg.RootKey:=HKEY_LOCAL_MACHINE;
> Reg.OpenKey("\SOFTWARE\тратата",TRUE);


1. если что, OpenKey - это функция
2. пытающаяся писать в защищенный раздел реестра (второй параметр)

Reg.OpenKeyReadOnly - должно спасти ОРД :)


 
Rouse_ ©   (2014-02-13 20:45) [2]

зы: и слэш перед "SOFTWARE" убери.


 
alexdn ©   (2014-02-13 20:58) [3]

> Rouse_ ©   (13.02.14 20:44) [1]
спасибо большое, с OpenKeyReadOnly начало работать, теперь только с записью проблема, тоже видно что то не то.

 Reg2:=TRegistry.Create;
 Reg2.RootKey:=HKEY_LOCAL_MACHINE;
 Reg2.OpenKey("SOFTWARE\тратата",true);
 Reg2.WriteString("STR","111"); //DateToStr(now)
 Reg2.CloseKey;
 Reg2.Free;


 
Rouse_ ©   (2014-02-13 21:03) [4]

Эмм...
Ну, как-бы да, ключ открывается только на чтение, поэтому писать и не можешь.
Если хочешь писать в данную ветку тебе (к слову о привилегиях) немножко админские права нужны (или SYSTEM, если сервисом работаешь).


 
alexdn ©   (2014-02-13 21:14) [5]

> Rouse_ ©   (13.02.14 21:03) [4]
Где что можно посмотреть на этот счёт? как открыть ключ на письмо и что можно посмотреть про админские права?


 
Rouse_ ©   (2014-02-13 21:19) [6]


> alexdn ©   (13.02.14 21:14) [5]
> Где что можно посмотреть на этот счёт? как открыть ключ
> на письмо и что можно посмотреть про админские права?

Пфф...
Ну технически только MSDN: http://msdn.microsoft.com/en-us/library/ms724871(v=vs.85).aspx


 
Dennis I. Komarov ©   (2014-02-13 23:30) [7]

Тут другая политика: а с какого перепугу твой софт в HKLM писать желает?


 
alexdn ©   (2014-02-14 00:05) [8]

Блин, заработало когда запустил программу от имени администратора, но это конечно не есть гут..

> Dennis I. Komarov ©   (13.02.14 23:30) [7]
> Тут другая политика: а с какого перепугу твой софт в HKLM
> писать желает?
Действительно интересный вопрос, а куда лучше вообще писать? я в смысле чтоб это работало и на других машинах, а то не хорошо получить от пользователя уведомление что программу "выбрасывает"..


 
alexdn ©   (2014-02-14 00:11) [9]

Наверно лучше писать в HKEY_CURRENT_USER\Software


 
Германн ©   (2014-02-14 00:11) [10]


>  куда лучше вообще писать?

Только в HKCU.
P.S.
Где ты был последние годы что вылез сейчас с этим вопросом?


 
alexdn ©   (2014-02-14 00:19) [11]

Всё, всё получилось).


 
alexdn ©   (2014-02-14 00:36) [12]

Теперь 10 дневный триал я сам напишу.. Конечно простая запись в реестр при желании будет легко отлавливаться, но для рядового пользователя этого будет вполне достаточно..


 
han_malign   (2014-02-14 08:43) [13]


> Только в HKCU.

- в W7 оно может по домену гулять, поэтому там есть еще
const HKEY_CURRENT_USER_LOCAL_SETTINGS = DWORD($80000007);
function _regHKCULocal: HKEY;
var
  OS  : TOSVersionInfo;
begin
  OS.dwOSVersionInfoSize := sizeof(OS);
  if( GetVersionEx(OS) and (OS.dwPlatformId = VER_PLATFORM_WIN32_NT{JIC})
      and //W7, 2008 R2 - 6.1
      (OS.dwMajorVersion >= 6) and
      (OS.dwMajorVersion + OS.dwMinorVersion > 6){(6+n)+(1+n)}
  )then
     Result:= HKEY_CURRENT_USER_LOCAL_SETTINGS
  else
     Result:= HKEY_CURRENT_USER;
end;

- который где-то в HKLM прячется...


 
Inovet ©   (2014-02-14 09:59) [14]

> [3] alexdn ©   (13.02.14 20:58)
> с записью проблема

Ну так очевидно надо не
Reg2.RootKey:=HKEY_LOCAL_MACHINE;
а
Reg2.RootKey:=HKEY_CURRENT_USER;


 
Dennis I. Komarov ©   (2014-02-14 10:57) [15]


> Теперь 10 дневный триал я сам напишу.. Конечно простая запись
> в реестр при желании будет легко отлавливаться, но для рядового
> пользователя этого будет вполне достаточно..

У, Сир, сейчас Вы получите другие грабли... Розыч же сказал, в тело (хвост) и при инсталляции (при первом запуске, с правами админа)


 
Rouse_ ©   (2014-02-14 22:59) [16]


> alexdn ©   (14.02.14 00:36) [12]
> Теперь 10 дневный триал я сам напишу..

Здесь тож задублирую, а то вдруг ты первую ветку не прочитал :)
http://alexander-bagel.blogspot.ru/2014/02/blog-post.html


 
Dennis I. Komarov ©   (2014-02-15 00:18) [17]


> Здесь тож задублирую, а то вдруг ты первую ветку не прочитал
> :)
> http://alexander-bagel.blogspot.ru/2014/02/blog-post.html

Да какой там, если он "триал" в HKCU пишет...


 
Rouse__   (2014-02-15 00:22) [18]

В hkcu один из правильных вариантов - почему бы и нет?


 
Dennis I. Komarov ©   (2014-02-15 00:32) [19]


> В hkcu один из правильных вариантов - почему бы и нет?

Ну дык это при условии 10 дён на юзверя


 
alexdn ©   (2014-02-15 02:01) [20]

Да, интересная статья, хвост я и сделал, вообщем всё нормально, я думаю будет достаточно.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.05.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.002 c
15-1411590605
Юрий
2014-09-25 00:30
2015.05.10
С днем рождения ! 25 сентября 2014 четверг


2-1392309493
alexdn
2014-02-13 20:38
2015.05.10
Чтение из реестра


15-1411460309
Problem
2014-09-23 12:18
2015.05.10
Вопрос по настройке Delphi 2007


15-1411392772
achiz
2014-09-22 17:32
2015.05.10
Стоимость программа для базы данных агентства недвижимости


6-1275486933
Iceastral
2010-06-02 17:55
2015.05.10
TCPClient/TCPServer, error 10054





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский