Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.07;
Скачать: CL | DM;

Вниз

Ошибка записи в реестр   Найти похожие ветки 

 
Delphin ©   (2003-06-23 12:31) [0]

If DxCheckBox13.Checked Then
With TRegistry.Create do begin
Rootkey := HKEY_LOCAL_MACHINE;
OpenKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
WriteString ("MailChecker","ExeName");
CloseKey;

Выдаёт ошибку: Failed to set data for "MailChecker"
Может кто знает, как это устранить?


 
mrcat ©   (2003-06-23 12:34) [1]

If DxCheckBox13.Checked Then
With TRegistry.Create do begin
Rootkey := HKEY_LOCAL_MACHINE;
OpenKey( "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
WriteString ("MailChecker","ExeName");
CloseKey;


 
Anatoly Podgoretsky ©   (2003-06-23 12:37) [2]

Точно такую ошибку даст и этот код, хоть он и боле6 правильный, поскольку у него явно нет прав.

Ключ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
такой же правильный как и
SOFTWARE\Microsoft\Windows\CurrentVersion\Run



 
mrcat ©   (2003-06-23 13:00) [3]

Anatoly Podgoretsky © (23.06.03 12:37)

касательно Win9x ОС, согласен, код в обоих случаях функционально идентичен, но в XP ошибка исчезает при mrcat © (23.06.03 12:34)


 
Anatoly Podgoretsky ©   (2003-06-23 13:23) [4]

Если она исчезает, то ее и в первом случае быть не должно, для системы абсолютно бехразличен набор буковок в имени ключа, в данном случае если такого ключа нет, то он будет создан в разделе HKEY_LOCAL_MACHINE с имменем "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" если конечно права позволяют. Резервированных имен для ключей нет, можно использовать любую совокупность символов, включая национальные.


 
mrcat ©   (2003-06-23 13:30) [5]

Anatoly Podgoretsky © (23.06.03 13:23)
да, всё верно, но:

не работает
With TRegistry.Create do begin
Rootkey := HKEY_LOCAL_MACHINE;
OpenKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
WriteString ("MailChecker","ExeName");
CloseKey;
end;


работает:
With TRegistry.Create do begin
Rootkey := HKEY_LOCAL_MACHINE;
OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
WriteString ("MailChecker","ExeName");
CloseKey;
end;


в обоих случаях запускается с правами администратора под WinXP


 
Anatoly Podgoretsky ©   (2003-06-23 13:39) [6]

В первом случае создание нового ключа в голове секции HKEY_LOCAL_MACHINE
Во втором открые уже существующего ключа в той же секции.

Однако разные права нужны. Возможно такое недоступно и администратору без специальной настроки реестра.
Попробуй создать такой ключ: OpenKey("MyKey\SubKey",true)
Получится ли. Да и обязательно с вызовом WriteString ("MailChecker","ExeName");



 
mrcat ©   (2003-06-23 14:02) [7]

мда, не всё коту масленница :)
как и ожидалось:

With TRegistry.Create do begin
Rootkey := HKEY_LOCAL_MACHINE;
OpenKey("MyKey\SubKey",true);
WriteString ("MailChecker","ExeName");
CloseKey;
end;


не работает. Эх, какими же правами надо обладать, чтобы писать непосредственно в HKEY_LOCAL_MACHINE?


 
Gogol   (2003-06-23 15:37) [8]

А что, если попробовать так, у меня работает и в Win98 и в WinXP:

Reg:= TRegistry.Create;
Reg.Rootkey := HKEY_LOCAL_MACHINE;
if Not Reg.OpenKey("\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", False) then
begin
REG.OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
REG.WriteString("MailChecker","ExeName");
end
else
begin
REG.OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
REG.WriteString("MailChecker","ExeName");
end;

Удачи


 
RNZ ©   (2003-06-23 16:33) [9]

2 mrcat ©
"Эх, какими же правами надо обладать, чтобы писать непосредственно в HKEY_LOCAL_MACHINE?"
А никакими правами это ты сделать несможешь.
Хивесы
HKEY_LOCAL_MACHINE
HKEY_USERS
являются корневыми и создаются на стадии инсталляции системы,
а остальные подключаются из файлов
HKEY_LOCAL_MACHINE\SAM Sam, Sam.log, Sam.sav
HKEY_LOCAL_MACHINE\Security Security, Security.log, Security.sav
HKEY_LOCAL_MACHINE\Software Software, Software.log, Software.sav
HKEY_LOCAL_MACHINE\System System, System.alt, System.log, System.sav
HKEY_CURRENT_CONFIG System, System.alt, System.log, System.sav
HKEY_CURRENT_USER Ntuser.dat, Ntuser.dat.log
HKEY_USERS\.DEFAULT Default, Default.log, Default.sav

в MSDN усе написанно


 
Gogol   (2003-06-23 16:42) [10]

ИМХО, Delphin-а это давно не интересует, мы паримся, а он молчит. Как показал ранее никакими особенными правами обладать не нужно. Delphin спит и пора завершать тему


 
Набережных С. ©   (2003-06-23 19:33) [11]

>mrcat © (23.06.03 14:02)
>Эх, какими же правами надо обладать, чтобы писать непосредственно в HKEY_LOCAL_MACHINE?

Запусти regedt32 и в меню безопасность посмотри разрешения.


 
mrcat ©   (2003-06-24 12:27) [12]

>RNZ © (23.06.03 16:33)

спасибо, уже читаю



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

Текущий архив: 2003.07.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
1-20070
levova
2003-06-25 15:15
2003.07.07
Вопрос по DateTime


3-20004
Солер
2003-06-11 13:58
2003.07.07
Помогите с запросом


14-20223
Пубертанец
2003-06-19 11:40
2003.07.07
Как в прикладухе на время защитить/заблокировать файл от записи?


14-20190
Knight
2003-06-17 16:07
2003.07.07
Download для вебстраниц...


1-20115
mao
2003-06-24 16:40
2003.07.07
RichEdit не видит картинки??? :(