Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Datum, an dem die Installation erzeugt wurde


4 replies to this topic

Gini

Gini
  • Members
  • 8 posts

Posted 24 October 2003 - 16:40

Hallo,

ich muss beim Ausführen einer Installation wissen, wie alt die Installation ist - dazu will ich das aktuelle Systemdatum mit dem Erstellungsdatum der Installation vergleichen. (Vergleich mittels jeweils primitiver Umrechnung des Datums in y*365+m*30+d).

nur wie komme ich an das Erstelldatum der Installation?

Auslieferung als PackageForTheWeb, das aus dem Internet heruntergeladen werden kann oder auf CD ausgeliefert wird. Das Datum dieser Datei kann sich also ändern, wenn die Datei z.B. heruntergeladen wurde.

Irgendwelche Ideen?

Danke im Voraus und ein schönes Wochenende!
Stefan G.

Christian Stuck

Christian Stuck
  • Members
  • 98 posts

Posted 27 October 2003 - 08:59

Bitte schau dir mal die Funktion an, vielleicht hilft Sie dir ja. Diese Funktion verwende ich um zu prüfen ob das Setup noch ausgeführt werden kann:


external prototype CheckAblauf(number, number, number);
/////////////////////////////////////////////////////////////////////////////////////////////////
// Function CheckAblauf
// Prüft ob die Zeit für die Installation abgelaufen ist
/////////////////////////////////////////////////////////////////////////////////////////////////
function CheckAblauf(nTag, nMonat, nJahr)
string svResult, svMonth, svDay, svYear, strAblauf;
number nvResult, nvYear, nvMonth, nvDay;
LIST DateList;
begin
strAblauf = "Nein";

// Aktuelles Datum ermitteln
GetSystemInfo( DATE , nvResult , svResult );
DateList = ListCreate(STRINGLIST);
StrGetTokens(DateList,svResult,"-");

// Monat, Tag und Jahr ermitteln
ListGetFirstString(DateList,svMonth); ListGetNextString (DateList,svDay); ListGetNextString (DateList,svYear);

// Datum in numerische Werte umwandeln
StrToNum(nvYear,svYear); StrToNum(nvMonth,svMonth); StrToNum(nvDay,svDay);

// Berechnung ob Version noch gültig
if (nvYear > nJahr) then
strAblauf = "Ja";
endif;
if (nvYear = nJahr) then
if (nvMonth > nMonat) then
strAblauf = "Ja";
else
if (nvMonth = nMonat) then
if (nvDay > nTag) then
strAblauf = "Ja";
endif;
endif;
endif;
endif;

// Soll SETUP abgebrochen werden?
if strAblauf = "Ja" then
NumToStr(svDay, nTag); NumToStr(svMonth, nMonat); NumToStr(svYear, nJahr);
MessageBox(svDay + "." + svMonth + "." + svYear + @TIME_EXP,WARNING); Exit;
endif;
end;

Gini

Gini
  • Members
  • 8 posts

Posted 28 October 2003 - 19:05

Danke - zum Vergleich hatte ich allerdings schon eine Funktion.

ich hätte gern eben beim Ausführen das Erstelldatum abgefragt und im Script nur einen Zeitraum hinterlegt. Bis ich da eine Lösung habe definiere ich es in einem ablaufdatum.h...

Gruß,
Gini

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 29 October 2003 - 11:34

Mir ist keine Funktion bekannt, die das erstelldatum zurück liefert. Ich würde in einem Post-Build-Schritt (bei den Medien-Einstellungen) das aktuelle Datum in eine Datei schreiben und zur Laufzeit dort auslesen.
Wenn du automatisiert über die Kommandozeile kompilierst kannst du das Datum auch als Preprozessor-Define auf der Kommandozeile übergeben.

Eruorla

Eruorla
  • Members
  • 2 posts

Posted 11 June 2004 - 14:06

QUOTE (Gini @ 2003-10-24 15:40)
...
nur wie komme ich an das Erstelldatum der Installation?
...

GetFileInfo(SRCDIR^"setup.exe",FILE_DATE,nvResult,sVersionsDate );


PackageForTheWeb entpackt sich ja normalerweise in das Temp-Verzeichnis und beim Installationsstart ist das dann das SRCDIR.
Die entpackte setup.exe, die darin liegt hat eigentlich immer das Datum wo das Setup kompiliert wurde. Alternativ geht auch das <Produktname>.msi File welches auch das Datum ändert, wenn während des Builds nur das InstallShield Script geändert wurde, also ohne daß Dateien neu mit kompiliert wurden.