Форум: "Начинающим";
Текущий архив: 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