找回密码
 加入
搜索
查看: 1691|回复: 4

[AU3基础] 如何读取AUTOIT程序编译时间为一个变量

  [复制链接]
发表于 2012-5-4 17:18:36 | 显示全部楼层 |阅读模式
创建时间和修改时间 是可以修改的。。。
发表于 2012-5-4 18:23:02 | 显示全部楼层
如果编译后没被修改过,修改时间就是编译时间
发表于 2012-5-4 19:46:28 | 显示全部楼层
楼上说正解哦
发表于 2012-5-4 20:21:29 | 显示全部楼层
本帖最后由 pusofalse 于 2012-5-4 20:25 编辑

PE文件结构中,的确有一个位置记录着编译时间,但并非绝对准确,因为很多编译器只是随便设一个值而已。对于Au3这样的脚本语言而言,编译时间是 解析器的编译时间,而非Au3程序的编译时间。

#include <PeShellX.au3>
#include <WinAPI.au3>
#include <Date.au3>

Const $PE_FILEPATH = @AutoItExe
Local $pLibrary = _WinAPI_LoadLibrary($PE_FILEPATH)

If Not _PeIsValidPE($pLibrary) Then Exit 1

Local $pNtHeader = _PeGetFileHeader($pLibrary)
Local $tNtHeader = DllStructCreate("dword Reserved[2];long TimeDateStamp", $pNtHeader)
Local $iTimeDateStamp = DllStructGetData($tNtHeader, "TimeDateStamp")

Local $sCompileDate = _DateAdd("s", $iTimeDateStamp, "1969/12/31 16:00:00")

MsgBox(0, "Compile Date", $sCompileDate)
_WinAPI_FreeLibrary($pLibrary)

评分

参与人数 1金钱 +10 收起 理由
user3000 + 10 上分表达敬佩之意!

查看全部评分

发表于 2012-5-4 21:14:13 | 显示全部楼层
本帖最后由 xms77 于 2012-5-4 21:16 编辑


$CreateTime = FileGetTime(@ScriptFullPath,1,1)  ;创建时间
$CompileTime = FileGetTime(@ScriptFullPath,0,1)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-28 19:04 , Processed in 0.083636 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表