Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с чтением DWORD значения из реестра Win 7 [D7, WinXP]


Страницы:   1 2

Vayrus ©   (2009-06-26 18:26:00) 

Здравствуйте, пишу простенькую программку, но возникла проблема, почему то в Windows 7 не работает следующий код (кракозябры), который прекрасно работает под Win XP:


uses
 Windows,
 SysUtils,
 Registry;

const
 sKey: string = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';//\

var
REG: TRegistry;
I: Integer;

begin
REG:= TRegistry.Create;
try
REG.RootKey := HKEY_LOCAL_MACHINE;
if REG.OpenKeyReadOnly(sKey + '\' + '{1A352E3E-9E02-42EC-8465-76A56095C871}') then
begin
if REG.ValueExists('EstimatedSize') then
begin
I := REG.ReadInteger('EstimatedSize');
Writeln('Read DWORD: ' + IntToStr(I));
end else
Writeln('Value not exists');
REG.CloseKey;
end else
Writeln('Cannot open key');
finally
REG.Free;
end;
Readln;
end.


Пожалуйста, помогите поправить код, чтобы он корректно работал нетолько в Win XP, но и в Win 7.

IDE: CodeGear 2009


Vayrus   (2009-06-27 10:35:00) [21]


> Вот как! И какже у нас выводятся кракозябры, если ничего
> неломается?


Знал бы - не спрашивал


> Или это штатное поведение?:


Прогнал под отладчиком - все нормально, ничего не вылетает, возможно не так прогнал, хотя тут, как оказалось, ничего сложного)


@!!ex   (2009-06-27 10:30:00) [22]

Или это штатное поведение?:


@!!ex   (2009-06-27 10:30:00) [23]

> [16] Vayrus   (27.06.09 10:27)

Вот как! И какже у нас выводятся кракозябры, если ничего неломается?


Vayrus   (2009-06-27 10:27:00) [24]


> Учи матчасть. Будет проще.
> Аккуратненько с помощью брэйкпоинтов и кнопочек F7 и F8
> проходишься по коду и смотришь когда и что ломается.


Дело в том что ничего и не ломается, но все равно спасибо


@!!ex   (2009-06-27 10:24:00) [25]

> [14] Vayrus   (27.06.09 10:22)

Учи матчасть. Будет проще.
Аккуратненько с помощью брэйкпоинтов и кнопочек F7 и F8 проходишься по коду и смотришь когда и что ломается.


Vayrus   (2009-06-27 10:22:00) [26]


> Расскажи мне, дорогой, как можно в тип Integer запихать
> какие-то там символы?


Вот и я удивляюсь)


@!!ex   (2009-06-27 10:10:00) [27]

> [12] Vayrus   (27.06.09 10:06)

Расскажи мне, дорогой, как можно в тип Integer запихать какие-то там символы?


Vayrus   (2009-06-27 10:06:00) [28]


> В точку ! Ты его так выровнял, что и прочитать невозможно
> :)


Его не так уж и много, просто так и скажите что лень читать)


> Обычно, прежде чем искать соринку  в чужем глазу, вытаскивают
> бревно из своего :)


Ответ был ожидаемым)


> Кстати, я так и не сумела понять, что за ошиба.
> То-ли значение не читается, то-ли не так выводится :)


В вопросе в скобках указано, что значение читается, но результат - кракозября, символы произвольной формы, а не численные значения как ожидалось и должно быть.


Riply   (2009-06-27 09:56:00) [29]

> [9] Vayrus   (27.06.09 09:32)
>> в своем кривом коде
> Очень он даже прямой,

В точку ! Ты его так выровнял, что и прочитать невозможно :)

> это, возможно, кривой модуль Registry в CodeGear 2009.

Обычно, прежде чем искать соринку  в чужем глазу, вытаскивают бревно из своего :)

P.S.
Кстати, я так и не сумела понять, что за ошиба.
То-ли значение не читается, то-ли не так выводится :)


Vayrus   (2009-06-27 09:45:00) [30]


> Так бездарно задать вопрос!


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


Vayrus   (2009-06-27 09:32:00) [31]


> в своем кривом коде


Очень он даже прямой, это, возможно, кривой модуль Registry в CodeGear 2009.


Vayrus   (2009-06-27 09:30:00) [32]


> но и не удосужился посмотреть, как он работает.


Не надо придумывать, все я смотрел и как уже говорил выше в Win XP результат возвращаются правильно, а в Win 7 кракозябрами, при том если этот же код компилировать в Delphi 7, то он работает в обеих ОС. А если вам слабо или религия не позволяет вместо данных ключей реестра использовать существующие у вас в реестре, то это уже не мои проблемы, здесь привиден лишь пример чтения DWORD значения.


Германн   (2009-06-27 01:44:00) [33]


> Vayrus   (26.06.09 23:19) [3]
>
>
> > какой кошмар!
>
>

Эт-точно. (с) Товарищ Сухов.
Так бездарно задать вопрос!
Даже в "Начинающим" - это перебор!


Игорь Шевченко   (2009-06-26 23:48:00) [34]


> Вам явно мозг черепную коробку давит, если он вообще есть.


А вот что тебе давит - непонятно, потому что ты не только не описал проблему в своем кривом коде, но и не удосужился посмотреть, как он работает. Использовать форум, как отладчик - занятие крайне неблагодарное, потому что проблема у тебя, а не у отвечающих, понял, да ?


Palladin   (2009-06-26 23:25:00) [35]


> Вы же не за моим компьютером сидите.

в точку


> Вам явно мозг черепную коробку давит,

ага ) дырки в ушах спасают.... )


Vayrus   (2009-06-26 23:21:00) [36]


> причем этот "следующий код" молчит как партизан...
> Игорь еще мягко выразился... ) тебя бы темечком об парту


Правильно, Вы же не за моим компьютером сидите.
Вам явно мозг черепную коробку давит, если он вообще есть.


Vayrus   (2009-06-26 23:19:00) [37]


> какой кошмар!


Опять не в тему, ну сколько можно, а вроде взрослые люди


Palladin   (2009-06-26 23:01:00) [38]

причем этот "следующий код" молчит как партизан...
Игорь еще мягко выразился... ) тебя бы темечком об парту


Игорь Шевченко   (2009-06-26 22:55:00) [39]


> почему то в Windows 7 не работает следующий код


какой кошмар!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо