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

Вниз

Реестр   Найти похожие ветки 

 
Ultimate ©   (2008-02-28 17:29) [0]

Проблема с реестром. Записал ключ через:

var
 Form1: TForm1; var i:byte;
implementation

{$R *.dfm}
var
RegFile: TRegIniFile;
const
//Подсекция
SubKey: string = "Software\Ultimate DVD";
StrKey: string = "StrKey";
....................
RegFile := TRegIniFile.Create(SubKey);
RegFile.WriteString(StrKey, "Value", IntToStr(znach+555));


через редактор реестра вижу, что ключ на месте...
но когда прошу вывести значение ключа по команде
Edit2.Text:=RegFile.ReadString(StrKey, "Value", "");
Ничего не выходит... Пишет про EAccesViolation и адреса всякие...Если вместо RegFile.ReadString(StrKey, "Value", "") ввести строку, для вывода в edit2, то всё нормально... Может что-то не так? Скажите что... или напишите подробно другой способ как считать строку с HKEY_CURRENT_USER\Software\Ultimate DVD\RegKey\Value="значение"??? Я новичок, так шо изините...


 
Palladin ©   (2008-02-28 17:35) [1]

в справку смотрел? примеры видел? для чего TRegIniFile осознал?


 
Ultimate ©   (2008-02-28 17:46) [2]

она англицкая... мало че понял, но предположительно, если имеется INI часть, значит дело идет в внешним ini файлом... мне это сделать - последняя моя задача в моей задумке... поэтому., мне се равно как, но надо считать данные оттуда :(


 
Palladin ©   (2008-02-28 18:08) [3]


> она англицкая..

и что теперь? бросай тогда это грязное дело... иди метлу покупай...
там если что ссылка examples есть, но там тоже по англицки...


 
macrodens ©   (2008-02-28 21:36) [4]

to Ultimate ©   (28.02.08 17:46) [2]
А ты думаешь мы все здесь с рождения английский знаем??
в тырнете есть онлайн переводчики если что, да и просто переводчиков полно.


 
Ultimate ©   (2008-02-29 08:51) [5]

англицкий я знаю чуть. и переводчик есть... да и кажись я что-то нашел... по своей проблеме


 
Ultimate ©   (2008-02-29 08:56) [6]

всё. сделал..сделал считывание ключа через
uses Registry;
function GetRegistryValue: string;
var
 Registry: TRegistry;
 S: string;
begin
 Registry:=TRegistry.Create;

 Registry.RootKey:=HKEY_LOCAL_MACHINE;
 {False because we do not want to create it if it doesn’t exist}
 Registry.OpenKey("MYKEY",False);
 Result :=Registry.ReadString("VALUE1");

 Registry.Free;
end;

который дается в примере delphi


 
Сергей М. ©   (2008-02-29 08:57) [7]


> Пишет про EAccesViolation и адреса всякие


Есть основания для подозрения в несуществовании объекта, на который ссылается переменная RegFile.


 
Anatoly Podgoretsky ©   (2008-02-29 09:46) [8]


> или напишите подробно другой способ как считать строку с
> HKEY_CURRENT_USER\



> Registry.RootKey:=HKEY_LOCAL_MACHINE;

-----

> всё. сделал..сделал считывание ключа через


Есть подозрение (номер 1), что нет
Есть подозрение (номер 2), что это не будет работать на большинстве компьтеров.


 
Ultimate ©   (2008-02-29 10:22) [9]


> > Registry.RootKey:=HKEY_LOCAL_MACHINE;
>
> -----
>
> > всё. сделал..сделал считывание ключа через

ну это я общий скрипт вынес... мой выглядит так:
function GetRegistryValue: string;
var
 Registry: TRegistry;
 S: string;
begin
 Registry:=TRegistry.Create;

 Registry.RootKey:=HKEY_CURRENT_USER;
 {False because we do not want to create it if it doesn’t exist}
 Registry.OpenKey("Software\Ultimate DVD\ver2.4",False);
 Result :=Registry.ReadString("Value");
 Registry.Free;
end;

Так что всё работает... и работает так как я хотел. в общем все вопросы заданные тут, касались тока одной програмки для диска... а именно Autorun.exe... Ну а зачем эти все фичи мне туда, объяснять не буду... :)


 
Anatoly Podgoretsky ©   (2008-02-29 10:59) [10]

А зачем ты приводишь чужой код, а сам используешь другой.
В интернете очень много кода, но к чему его приводить здесь?
Но и приведеный код с ошибками. Будет и утечка памяти и сообщени об ошибке. Если хочешь получать сообщения об ошибках, то хотя бы сделай защищенный блок.

ЗЫЖ в коде есть лишняя неиспользуемая переменная.


 
sniknik ©   (2008-02-29 11:55) [11]

> ЗЫЖ в коде есть лишняя неиспользуемая переменная.
даже две... ;)

(вот как не люблю with, но именно для подобного рода кода (короткий, и в нем можно за счет with убрать лишнее) всетаки использую)


 
Ultimate ©   (2008-02-29 12:33) [12]


> > ЗЫЖ в коде есть лишняя неиспользуемая переменная.
> даже две... ;)

это ты про  S: string; и  Registry.Free; ???
я проста непойму, зачем они нужны :)

> Но и приведеный код с ошибками. Будет и утечка памяти и
> сообщени об ошибке. Если хочешь получать сообщения об ошибках,
>  то хотя бы сделай защищенный блок.

ну у меня ошибок нет... все работает... утечка памяти... в смысле?
***
Да и еще одно... невкурсе как перевести числовое значение из типа string в тип integer??? чета у меня не варит чайник?


 
Ultimate ©   (2008-02-29 13:38) [13]


procedure TForm1.FormActivate(Sender: TObject);
var
 SerialNum : dword;
 a, b : dword;
 Buffer  : array [0..255] of char;
begin
 if GetVolumeInformation("c:\", Buffer, SizeOf(Buffer),
   @SerialNum, a, b, nil, 0) then
     Edit1.Text:=IntToStr(SerialNum);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=StrToInt(Edit2.Text) + 555;
end;


проблема в Edit2.Text:=StrToInt(Edit2.Text) + 555;
код вроде нормальный, но пишет про несовместимость типов :( какгбы string и integer... но ведь StrToInt(Edit2.Text) должно быть integer.... что не так?


 
Palladin ©   (2008-02-29 13:48) [14]

Edit2.Text у тебя тоже я так понимаю integer ?
брысь книжки читать


 
Ultimate ©   (2008-02-29 17:29) [15]

я понял в чем прикол был... немного я думаю (в смысле мало :)



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

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

Наверх




Память: 0.51 MB
Время: 0.03 c
2-1204487900
Lamer666
2008-03-02 22:58
2008.03.30
DBGridEh и поле с авто просчетом


2-1204531400
sancho2
2008-03-03 11:03
2008.03.30
Вопрос про try


15-1202977911
pasha_golub
2008-02-14 11:31
2008.03.30
Скрипт консольный


2-1204190493
Still Swamp
2008-02-28 12:21
2008.03.30
Как использовать TwilightColorMap


15-1203166532
x.pro
2008-02-16 15:55
2008.03.30
Хостинг для БД