Главная страница
    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.49 MB
Время: 0.078 c
15-1246084179
@!!ex
2009-06-27 10:29
2009.08.30
KVM с автоматическим переключением мышки


15-1246212338
vuk
2009-06-28 22:05
2009.08.30
Москва. Печать на цветном лазернике. Где?


2-1246015956
wordmen
2009-06-26 15:32
2009.08.30
нужно сгенерить дату следующего дня и определенное время


2-1246452586
student_91
2009-07-01 16:49
2009.08.30
Canvas


15-1246568526
Kostafey
2009-07-03 01:02
2009.08.30
Наклепал пару заметок про EMaxima





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