Текущий архив: 2015.05.10;
Скачать: CL | DM;
ВнизЧтение из реестра Найти похожие ветки
← →
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;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.002 c