Всем привет! Есть 2 функции: function GetFileTime(hFile: HANDLE; lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFILETIME): BOOL; stdcall; Получает время Создания/Последнего доступа/Записи файла... function SetFileTime(hFile: HANDLE; lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFILETIME): BOOL; stdcall; Устанавливает время Создания/Последнего доступа/Записи файла... Я попытался установить своему файлу время Создания/Последнего доступа/Записи как у файла Explorer.exe, не у меня не получилось... Я сделал это так: program MB; uses Windows; function WinDir: String; var WinPath: array [0..MAX_PATH] of Char; begin GetWindowsDirectory(WinPath, MAX_PATH); Result := WinPath; end; //WinDir var st: OFSTRUCT; hFile1, hFile2: Hwnd; lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFILETIME; begin GetMem(lpCreationTime, 32); GetMem(lpLastAccessTime, 32); GetMem(lpLastWriteTime, 32); hFile1 := OpenFile(PChar(WinDir + 'Explorer.exe') , st , OF_WRITE); hFile2 := OpenFile(PChar(WinDir + 'MyFile.exe') , st , OF_WRITE); GetFileTime(hFile1, lpCreationTime, lpLastAccessTime, lpLastWriteTime); SetFileTime(hFile2, lpCreationTime, lpLastAccessTime, lpLastWriteTime); end. Код кривой, т.к. писал сам Помогите плиз разобраться в чем дело, и сделать получше...
1. Проверь возвращаемое значение функций GetFileTime и SetFileTime. Из мсдн: If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. 2. Почему в GetMem ты выделяешь 32 байта, если FILETIME - это 2 дворда?