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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.047 c
2-1204118277
Artem
2008-02-27 16:17
2008.03.30
Событие


2-1204107130
Nigga
2008-02-27 13:12
2008.03.30
Засунуть stringgrid в длл - возможно ли?


4-1185779660
Максимм
2007-07-30 11:14
2008.03.30
Мониторинг сетевых принтеров.


2-1204186356
O.O
2008-02-28 11:12
2008.03.30
Ошибка после закрытия Excel


2-1204289846
Knoob
2008-02-29 15:57
2008.03.30
Какой функцией можно просмотреть каталог





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский