Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi möchte einheitliches Datums für Exec-Files (https://www.delphipraxis.net/13935-moechte-einheitliches-datums-fuer-exec-files.html)

TStringlist 29. Dez 2003 14:37


möchte einheitliches Datums für Exec-Files
 
Hallo, die Exec-Files einer kleinen Programmsammlung sollen alle ein gleiches einheitliches Datum bekommen. Kennt eventuell jemand eine Api-Funktion mit deren Hilfe ein Programm diese Daten bei anderen Exec-Files ändern kann?

Thx im Voraus

Stanlay Hanks 29. Dez 2003 14:45

Re: möchte einheitliches Datums für Exec-Files
 
Hi. Ich weiß zwar keine direkte Lösung, aber bei Nero gibts bei den Einstellungen zum Brennen einer CD die Möglichkeit, allen Dateien ein einheitliches Datum zu geben. Also vielleicht einfach mal alles auf ne CD und dann wieder zurückkopieren. Alerdings glaub ich, hab ich schon mal ein Tool auf irgendner Heft CD gesehen, dass das kann...

Man liest sich, Stanlay :hi:

Luckie 29. Dez 2003 14:47

Re: möchte einheitliches Datums für Exec-Files
 
Such mal nach einem Programm Namens "touch". So heißen die meistens.

TStringlist 29. Dez 2003 21:35

Re: möchte einheitliches Datums für Exec-Files
 
Thx beiden. Touch war echt brauchbar.

Im folgenden Code habe ich nundann versucht, einen solchen Zeiteintrag vorerst mal bei einem einzelnen bestimmten File auszutesten.

Code:
procedure TForm1.Button1Click(Sender: TObject);
const FName = 'C:\Programme\Borland\Delphi7\Projects\Test.exe';
var ADateTime : TDateTime;
    AFileDate : integer;
    FileHandle : integer;
    FileSetDate_Result : integer;
begin
  ADateTime := StrToDateTime ('01.01.1900 20:00:00');
  AFileDate := DateTimeToFileDate(ADateTime);

  FileHandle := FileOpen (FName, fmOpenReadWrite or fmShareDenyNone);
  try
    FileSetDate_Result := FileSetDate (FileHandle, AFileDate);
  finally
    FileClose(FileHandle);
  end;

  showMessage('FileHandle: ' + IntToStr (FileHandle) + #13#10 +
              'FileSetDate-Result: ' +  IntToStr (FileSetDate_Result) +
              ' = ' + SysErrorMessage (FileSetDate_Result) );
end;
Leider allerdings, bekomme ich da als Antwort-Code der FileSetDate-Funktion immer wieder nur eine 87 = "Falscher Parameter" angezeigt. Als FileHandle krieg ich meistens den Wert 912, der damit wohl in Ordnung sein dürfte. Aber als Ergebnis dieser FileSetDate-Funktion immer nur die 87 = Falscher Parameter :?: :?: :?: Hat da vielleicht nochmal jemand eine Idee, was hier los sein könnte? (Selbst wenn das Ganze hier jetzt auch nichts mehr mit API zu tun haben sollte).

Christian Seehase 30. Dez 2003 01:35

Re: möchte einheitliches Datums für Exec-Files
 
Moin TStringList,

such' hier mal nach Hier im Forum suchenSetFileTime (evtl. Hier im Forum suchenGetFileTime)
Das Thema hatten wir schon vor einiger Zeit, und mit der genannten Funktion klappt es normaler Weise problemlos.

r_kerber 30. Dez 2003 06:32

Re: möchte einheitliches Datums für Exec-Files
 
Habe gerade mal meinen PC durchsucht. Beim C++-Builder liefert Borland ein Programm namens Touch mit bei Delphi jedoch nicht. :?

TStringlist 30. Dez 2003 09:40

Re: möchte einheitliches Datums für Exec-Files
 
@Chris, Hallo

Selbst auch mit diesen API-Funktionen gab es anfangs diesen besagten Error-Code (87). Funktioniert haben beide Varianten erst dann, als ich diesen vielleicht doch etwas unrealistischen Zeit/Datums-Eintrag auf ein etwas späteres Datum als den 01.01.1900 abänderte.

Mit diesen drei änderbaren Zeiteinträge dürfte der API-Weg für mich dann auch die etwas besser Lösung sein. ...denn die FileSetDate-Funktion ändert ja nach Auskunft von GetFileTime nur diese eine LastWriteTime... Also, wer's nunmal ein bisschen ordentlich haben möchte, hat da wohl keine Wahl...

Thx for tip..


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz