卸载一个innosetup脚本的一部分,我想添加一个检查一个特定的文件年代最后更新日期时间发生在最后10分钟。
有人知道innosetup对照表帕斯卡代码?
卸载一个innosetup脚本的一部分,我想添加一个检查一个特定的文件年代最后更新日期时间发生在最后10分钟。
有人知道innosetup对照表帕斯卡代码?
您可以使用Windows API函数<代码> GetFileAttributesEx > < /代码的最后修改日期。把这个(代码)中的部分工作:
const
GetFileExInfoStandard = $0;
type
FILETIME = record
LowDateTime: DWORD;
HighDateTime: DWORD;
end;
WIN32_FILE_ATTRIBUTE_DATA = record
FileAttributes: DWORD;
CreationTime: FILETIME;
LastAccessTime: FILETIME;
LastWriteTime: FILETIME;
FileSizeHigh: DWORD;
FileSizeLow: DWORD;
end;
SYSTEMTIME = record
Year: WORD;
Month: WORD;
DayOfWeek: WORD;
Day: WORD;
Hour: WORD;
Minute: WORD;
Second: WORD;
Milliseconds: WORD;
end;
function GetFileAttributesEx (
FileName: string;
InfoLevelId: DWORD;
var FileInformation: WIN32_FILE_ATTRIBUTE_DATA
): Boolean;
external GetFileAttributesExA@kernel32.dll stdcall ;
function FileTimeToSystemTime(
FileTime: FILETIME;
var SystemTime: SYSTEMTIME
): Boolean;
external FileTimeToSystemTime@kernel32.dll stdcall ;
你可以测试它通过修改安装项目的InitializeWizard功能如下:
procedure InitializeWizard();
var
FileInformation: WIN32_FILE_ATTRIBUTE_DATA;
SystemInfo: SYSTEMTIME;
begin
GetFileAttributesEx(
c:
tldr ,
GetFileExInfoStandard ,
FileInformation);
FileTimeToSystemTime(
FileInformation.LastWriteTime,
SystemInfo);
MsgBox(
format(
%4.4d-%2.2d-%2.2d ,
[SystemInfo.Year, SystemInfo.Month, SystemInfo.Day]),
mbInformation, MB_OK);
end;
在我的系统(XP SP3),弹出窗口说:<代码> 2008-08-04 < /代码>
目前支持这个的唯一方法是使用一个DLL链接到你的卸载。
您必须编写DLL,拥有你想要的功能。
默认INNOSetup安装示例向您展示如何调用dll。之后,它应该是简单的。
只要你能写一个DLL。
HTH, Ryan.