PDA

Ver la Versión Completa : Como utilizar una api Windows


Iskariote0087
09-06-2006, 20:22:01
Hola, necesito cambiar la fecha de creacion de un .DOC y me han comentado que se puede hacer utilizando una API SetFileTime , pero no tengo ni idea de como se utiliza una API. Aguna alma caritativa que me eche un cable.GRACIAS.

un saludete
iskariote

Sotrono
09-06-2006, 21:14:10
Hola, acá (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/setfiletime.asp) tenés la documentación de Micro$oft de esa API.

Bytes!!

Sotrono
09-06-2006, 21:29:52
Un ejemplo de su utilización:


//Sacado de www.swissdelphicenter.ch
//Autor Simon Grossenbacher

function SetFileDateTime(FileName: string; NewDateTime: TDateTime): Boolean;
var
FileHandle: Integer;
FileTime: TFileTime;
LFT: TFileTime;
LST: TSystemTime;
begin
Result := False;
try
DecodeDate(NewDateTime, LST.wYear, LST.wMonth, LST.wDay);
DecodeTime(NewDateTime, LST.wHour, LST.wMinute, LST.wSecond, LST.wMilliSeconds);
if SystemTimeToFileTime(LST, LFT) then
begin
if LocalFileTimeToFileTime(LFT, FileTime) then
begin
FileHandle := FileOpen(FileName, fmOpenReadWrite or
fmShareExclusive);
if SetFileTime(FileHandle, nil, nil, @FileTime) then
Result := True;
end;
end;
finally
FileClose(FileHandle);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
if SetFileDateTime(OpenDialog1.FileName, now) then
ShowMessage('Date set to now !');
end;

roman
09-06-2006, 21:39:45
SetFileTime sólo va a cambiar la fecha del archivo en disco pero no la fecha de creación que el propio documento de Word guarda internamente.

// Saludos