我有一個Windows可執行文件,我已經安裝在一臺機器上。是否有一種方法或API可以在該計算機上安裝可執行文件時獲取時間戳。我不問這個exe文件的創建/修改/訪問時間戳,而是exe文件安裝在特定機器上的時間。 此外,該exe文件安裝在Windows系統文件夾。可執行安裝時間
可執行安裝時間
回答
您可以使用FileTimeToSystemTime()
檢索日期和一個文件或目錄的創建時間。
#include <windows.h>
#include <stdio.h>
int main(){
// a file handle
HANDLE hFile1;
FILETIME ftCreate, ftAccess, ftWrite;
SYSTEMTIME stUTC, stLocal, stUTC1, stLocal1, stUTC2, stLocal2;
// a filename,
char fname1[ ] = "c:\\windows\\explorer.exe";
// temporary storage for file sizes
DWORD dwFileSize;
DWORD dwFileType;
// opening the existing file
hFile1 = CreateFile(fname1, // file to open
GENERIC_READ, // open for reading
FILE_SHARE_READ, // share for reading
NULL, // default security
OPEN_EXISTING, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attribute template
if(hFile1 == INVALID_HANDLE_VALUE){
printf("Could not open %s file, error %d\n", fname1, GetLastError());
return 4;
}
dwFileType = GetFileType(hFile1);
dwFileSize = GetFileSize(hFile1, NULL);
printf("%s size is %d bytes and file type is %d\n", fname1, dwFileSize, dwFileType);
// retrieve the file times for the file.
if(!GetFileTime(hFile1, &ftCreate, &ftAccess, &ftWrite)){
printf("Something wrong lol!\n");
return FALSE;
}
// convert the created time to local time.
FileTimeToSystemTime(&ftCreate, &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
// convert the last-access time to local time.
FileTimeToSystemTime(&ftAccess, &stUTC1);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC1, &stLocal1);
// convert the last-write time to local time.
FileTimeToSystemTime(&ftWrite, &stUTC2);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC2, &stLocal2);
// build a string showing the date and time.
printf("\nCreated on: %02d/%02d/%d %02d:%02d\n", stLocal.wDay, stLocal.wMonth, stLocal.wYear, stLocal.wHour, stLocal.wMinute);
printf("Last accessed: %02d/%02d/%d %02d:%02d\n", stLocal1.wDay, stLocal1.wMonth, stLocal1.wYear, stLocal1.wHour, stLocal1.wMinute);
printf("Last written: %02d/%02d/%d %02d:%02d\n\n", stLocal2.wDay, stLocal2.wMonth, stLocal2.wYear, stLocal2.wHour, stLocal2.wMinute);
// close the file's handle and itself
CloseHandle(hFile1);
return 0;
}
我的印象是,創建時間是文件最初在主構建機器上創建的時間,但看起來像是我在X時間構建了一個exe文件,但是在Y時間在M機器上覆制了這個exe文件,然後創建了時間M機器上的文件將是Y時間。它是否正確? – user3364310
是的,如果你將exe複製到另一個位置,那麼它會得到一個新的時間戳。我更新了代碼。它顯示了創建日期,上次訪問時間和修改時間。 –
完美。謝謝 。 – user3364310
- 1. Install4j:安裝後可以安裝可執行文件嗎?
- 2. 安裝期間Inno Setup啓動可執行文件(安裝驅動程序)
- 3. Wix:安裝可執行程序
- 4. 安裝可執行文件與Powershell DSC
- 5. 可執行的JAR安裝路徑
- 6. Python包安裝腳本安裝二進制可執行文件
- 7. Perl:inc :: Module ::在Makefile.PL中安裝並安裝可執行文件
- 8. 在本地安裝.net安裝程序可執行文件時出錯
- 9. 在MSI執行期間執行的DLL(安裝程序)
- 10. 無法執行時安裝程序
- 11. 安裝Tk執行命令時出錯
- 12. Bundler安裝需要較長的時間來執行
- 13. 增加drupal commons安裝的最大執行時間
- 14. 單元測試執行期間的Windows 8 Appx安裝超時
- 15. 以編程方式執行安裝時出現安裝失敗
- 16. 安裝包作爲依賴時,不要執行postinstall安裝
- 17. 安裝openwrt系統時未發現ruby可執行文件
- 18. libtool安裝保留了可執行文件的臨時路徑
- 19. 安裝gem時,是否應該只安裝庫,還是應該安裝可執行文件?
- 20. npm安裝無法執行exec安裝後腳本bower安裝
- 21. 開始執行NSIS安裝
- 22. 使用Vista進行安裝時簽名的安裝可執行文件上的未識別出版者
- 23. 安裝Winrar之後,自行執行的Jar文件不可執行
- 24. 如何改變套件安裝可執行文件和安裝目錄
- 25. 如何創建將安裝可執行文件的安裝文件Jar
- 26. 在安裝開始之前運行可執行文件
- 27. 通過JSPM安裝後運行可執行文件
- 28. 如何在安裝項目結束時運行可執行文件?
- 29. 在可變時間執行腳本
- 30. 付款可執行多長時間?
在註冊表中可能有一個條目。 –
定義「已安裝」。 –
安裝時間表示何時將exe複製到機器上。 – user3364310