如何读取Windows Server 2003 的安装日期 |
缺席
|
Delhpi
一般會員 發表:9 回覆:14 積分:4 註冊:2008-07-05 發送簡訊給我 |
从网上搜索到如下代码,我的系统是 Windows Server 2003 sp1,运行代码提示错误,说无效的数据类型InstallDate,我到注册表一看,发现是没有这个InstallDate键,所以会出错。
请问如何才能 读取Windows Server 2003 的安装日期?谢谢。 [code delphi] //系统安装时间 function DateInstallWindows(var DateInstall: TDateTime): Boolean; var RegDate: TRegistry; Buffer: Integer; begin Result := False; RegDate := TRegistry.Create; try RegDate.RootKey := HKEY_LOCAL_MACHINE; if Win32Platform = VER_PLATFORM_WIN32_NT then begin if RegDate.OpenKey('Software\Microsoft\Windows NT\CurrentVersion', True) then begin RegDate.ReadBinaryData('InstallDate', Buffer, sizeof(Buffer)); DateInstall := StrToDateTime(FormatDateTime('dd/mm/yyyy hh:nn', FileDateToDateTime(Buffer))); Result := True; end end else if RegDate.OpenKey('Software\Microsoft\Windows\CurrentVersion', True) then begin RegDate.ReadBinaryData('FirstInstallDateTime', Buffer, sizeof(Buffer)); DateInstall := StrToDateTime(FormatDateTime('dd/mm/yyyy hh:nn', FileDateToDateTime(Buffer))); Result := True; end finally RegDate.CloseKey; RegDate.Free; end; end; } //用法 procedure TForm1.BitBtn2Click(Sender: TObject); var TheDate: TDateTime; begin if DateInstallWindows (TheDate) Then Label1.Caption:=DateTimeToStr (TheDate); end; [/code] |
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
1.此篇程式碼要由何處得知呢
2. 使用你的代碼執行程式一樣會出錯 指出型態不符,後來讀值我是用 RegDate.ReadInteger 就 ok 了 3.我的 os 是 xp 在你所指出的位置有 installDate 這個 key 其key 是十六進位的值,我轉成十進位後 一樣和日期不一樣
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |