fish - 2005/6/21 17:26:00
一个取系统时间的小软件,有一个人说他的系统是前几天装的,可以安装日期就说是2004年的,现在请大家来试试有没有什么异常
[URL=upload/KFCFile4753_GetTypeTime.rar]上传文件4753[/URL]
[IMG=upload/KFCFile4754_Snap1.gif]上传文件4754[/IMG]
希德船长 - 2005/6/21 17:46:00
我的结果是2003.3.14,可我已经重装很多次系统了,不可能是这个日期的。难道说它测的是硬件系统的首次运行日期?
还有,这数据是用什么函数取的?
sekitomokazu - 2005/6/21 19:29:00
我的是2001.9.5。。。疑问同1楼
fish - 2005/6/21 19:47:00
没有什么函数可以得到系统的安装日期,只能通过关键的文件创建时间
winNT核心的是通过winnt/system32/cmd.exe这个文件的创建时间来得到的,
win9x是通过windows\system.dat (注册表文件件)的创建时间来得到的
因为在我的机子上试过了,打补丁和SP都不会影响cmd.exe的创建时间的,
所以cmd.exe的创建时间总是保持系统安装的日期,
而在win9x下,注册表文件的创建时间也是不变的
dickchy - 2005/6/21 20:55:00
[IMG=upload/KFCFile4755_未命名.jpg]上传文件4755[/IMG]
好奇怪,我最近才打算装系统的,而且这个winme是很早以前装的,难道是我19号那天用了aston的缘故?还是那天我改了shell32.dll文件的缘故?
十六月 辉夜 - 2005/6/21 22:47:00
显示的是我买电脑时装的系统的时间
我的XP在昨天重装,检测不出来
kzhou - 2005/6/22 0:42:00
汗,,重装系统不格c盘的么?
dickchy - 2005/6/22 11:11:00
反正我是重装必格c盘的·····
orlye - 2005/6/22 11:57:00
如果我退到dos下把Cmd.exe删了,再拷一份进去,是不是系统安装时间就成了拷进去时的时间了?
十六月 辉夜 - 2005/6/23 19:01:00
我重装时有格式化C盘啊,重装了才几天
但软件显示的安装时间却是01年
fish - 2005/6/23 20:02:00
以下是这里面的代码:
if(OsVer.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS) //Win2k or later
{
CS_SystemFile = path;
CS_SystemFile += "\\System32\\CMD.EXE";
}
else
{
CS_SystemFile = path;
CS_SystemFile += "\\SYSTEM.DAT";
}
HANDLE hFile;
hFile = CreateFile(CS_SystemFile,GENERIC_READ,
FILE_SHARE_READ,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
GetFileTime(hFile,&CFt,&CFw,&CFa);
FileTimeToSystemTime(&CFt,&sysTime); //Get File Created Time
CS_Dis.Format("%d年%d月%d日",
sysTime.wYear,sysTime.wMonth,sysTime.wDay);
SetDlgItemText(IDC_STATIC_INSTALL,CS_Dis);
}
else
{
SetDlgItemText(IDC_STATIC_INSTALL,"不能取得系统安装时间 :(");
}
kukumaiwu - 2005/6/23 22:12:00
path是什么类型的变量?(c++有PATH这个类型么?)
一直在用java,c++还是不行(笨笨T T)
kukumaiwu - 2005/6/23 22:14:00
java只知道用getTimeInMillis()方法可以得到当前时间
得到文件创建时间就不清楚了=v=
fish - 2005/6/24 1:46:00
以下引用kukumaiwu在2005-6-23 22:12:32的发言: path是什么类型的变量?(c++有PATH这个类型么?) 一直在用java,c++还是不行(笨笨T T) |
char path[MAX_PATH];
GetWindowsDirectory(path,MAX_PATH);
这是得到Windows的目录
亡灵之猫 - 2005/6/24 19:07:00
来晚了!
楼主想法不错,但是楼主取得的是文件的创建时间,Windows对创建时间的管理似乎并不是记录这个文件是什么时候在本地磁盘上生成,我前几个月才装的DX SDK里面的文件创建时间居然是2001年
kukumaiwu - 2005/6/24 19:37:00
=v=
原来是没有上段程序||||||||
scegg - 2005/6/25 9:54:00
软件不准。
bm7140 - 2005/6/25 12:33:00
啊 2002年10月7日……那个时候我还没有这台电脑呢……
DENNISERY - 2005/6/25 21:37:00
我自从买电脑后就重装了7次了
一次C盘也没格