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

Вниз

Проблема с GetKeyDateTime в Win XP   Найти похожие ветки 

 
Vayrus   (2009-06-26 18:32) [0]

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


program Project1;

{$APPTYPE CONSOLE}

uses
 Windows,
 SysUtils,
 Registry;

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

var
REG: TRegistry;
I: Integer;
TimeZoneInfo: TTimeZoneInformation;
D: TDateTime;

function DateTimeToLocalDateTime(DateTime: TDateTime): TDateTime;
begin
 case GetTimeZoneInformation(TimeZoneInfo) of
   TIME_ZONE_ID_STANDARD:
     Result := DateTime - (TimeZoneInfo.Bias / 60 / 24);
   TIME_ZONE_ID_DAYLIGHT:
     Result := DateTime - ((TimeZoneInfo.Bias + TimeZoneInfo.DaylightBias) / 60 / 24);
 else
   Result := 0;
 end;
end;

procedure FileTimeToDateTime(ft: TFileTime; var dt: TDateTime);
var
 SystemTime: TSystemTime;
 FileTime: TFileTime;
begin
 if FileTimeToLocalFileTime(ft, FileTime) then
 begin
   FileTimeToSystemTime(ft, SystemTime);
   dt := SystemTimeToDateTime(SystemTime);
 end;
end;

function GetKeyDateTime(cKey: string): TDateTime;
var
 RegKeyInfo: TRegKeyInfo;
 RegDate: TDateTime;
begin
 Reg.GetKeyInfo(RegKeyInfo);
 with RegKeyInfo do
 begin
   FileTimeToDateTime(FileTime, RegDate);
   RESULT := DateTimeToLocalDateTime(RegDate);
 end;
end;

begin
REG:= TRegistry.Create;
try
REG.RootKey := HKEY_LOCAL_MACHINE;
if REG.OpenKeyReadOnly(sKey + "\" + "{1A352E3E-9E02-42EC-8465-76A56095C871}") then
begin
D := GetKeyDateTime(sKey + "\" + "{1A352E3E-9E02-42EC-8465-76A56095C871}");
Writeln("Key DATA: " + DateTimeToStr(D));
REG.CloseKey;
end else
Writeln("Cannot open key");
finally
REG.Free;
end;
//
Readln;
end.


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

IDE: CodeGear 2009


 
clickmaker ©   (2009-06-26 18:33) [1]

> не работает следующий код

что значит "не работает"? какие ошибки выдает?


 
Vayrus   (2009-06-26 19:06) [2]

Выдает дату: 30.12.1899


 
Anatoly Podgoretsky ©   (2009-06-26 19:13) [3]

Нормальная дата.


 
Vayrus   (2009-06-26 19:22) [4]

Я прохожу по всем ключам деинсталляции и все они одной даты - это не нормально, когда как в Win 7 все даты создания ключа разные и они соотвествуют дате установки приложений.


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


> Выдает дату: 30.12.1899


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


 
Palladin ©   (2009-06-26 22:59) [6]

просто ужас какой то, а чего ожидалось то?


 
Vayrus   (2009-06-26 23:17) [7]


> просто ужас какой то, а чего ожидалось то?


Я прохожу по всем ключам деинсталляции и все они одной даты - это не нормально, когда как в Win 7 все даты создания ключа разные и они соотвествуют дате установки приложений.


 
Vayrus   (2009-06-26 23:18) [8]


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


Не в тему


 
Palladin ©   (2009-06-26 23:27) [9]

не в тему? ) предлагаю провести весь вышеприведенный код ниже, но с комментариями автора


 
Игорь Шевченко ©   (2009-06-26 23:44) [10]


> Я прохожу по всем ключам деинсталляции и все они одной даты
> - это не нормально


одно из двух - либо не туда проходишь, либо они все одной даты.

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


 
Vayrus   (2009-06-27 09:39) [11]


> либо они все одной даты.


Не должны, так как данный код изначально был ориентирован на Win XP, но там так и не заработал, возвращая для всех ключей одно и то же значение, а вот в Win 7 все работает так как и ожидалось. Возможно, я не учел особенности реестра Win XP.


> Ты программист


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


> кривой код


Укажите на кривость, где его Вы тут узрели - на ошибках учатся.


 
Игорь Шевченко ©   (2009-06-27 12:48) [12]


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


Найми программиста, который умеет


 
Vayrus   (2009-06-27 13:00) [13]


> Найми программиста, который умеет


Ожидаемый ответ и легко сказать "найми программиста", дайте денег - найму, "инициатива нагибает инициатора"))


 
Игорь Шевченко ©   (2009-06-27 13:07) [14]

Изучай:

http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
Anatoly Podgoretsky ©   (2009-06-27 13:14) [15]

> Vayrus  (27.06.2009 13:00:13)  [13]

Денег на халяву не даем.


 
Vayrus   (2009-06-27 13:22) [16]


> Денег на халяву не даем.


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


 
Vayrus   (2009-06-27 13:22) [17]


> Изучай:
>
> http://ln.com.ua/~openxs/articles/smart-questions-ru.html


Ну хоть что то дельное



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

Форум: "Начинающим";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
15-1246253417
Rouse_
2009-06-29 09:30
2009.08.30
Я даж не знаю плакать или смеяться. :)


2-1246608612
NIIL
2009-07-03 12:10
2009.08.30
TRegExp и парсинг HTML


2-1246521017
belmol
2009-07-02 11:50
2009.08.30
CopyFiles отключить контроль ошибок


1-1212668728
Sha
2008-06-05 16:25
2009.08.30
Насколько адекватен SizeOf


1-1212955915
andreil
2008-06-09 00:11
2009.08.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский