Datum und Uhrzeit unter Server 2012R2

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Datum und Uhrzeit unter Server 2012R2

Beitrag von Jan »

Eine merkwürdige Sache: Ich habe diese Zeile in mehreren Programmen drin, um den Benutzern Infos darüber zu geben, wie alt die verwendete Programmversion ist:

Code: Alles auswählen

oDlgApp:setTitle(AppName(.F.) + " vom " + DToC(FileDate(AppName())) + " - " + FileTime(AppName())
Unter Windows 7 sieht das so aus:
Windows 7.jpg
Windows 7.jpg (5.7 KiB) 9129 mal betrachtet
Unter unter Server 2012R2 so:
Server 2012R2.jpg
Server 2012R2.jpg (3.55 KiB) 9129 mal betrachtet
Das ist die gleiche exe. Aber Datum und Uhrzeit werden auf dem Server verschluckt. Hat da jemand eine Idee zu?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Manfred »

hast Du das mal in eine Var geschrieben und geschaut was da drin steht? Auf den ersten Bliock sehen mir die .. aus, als wenn der Anzeigebereich zu klein wäre in diesem FAll.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Jan »

Hallo Manfred,

kann nicht sein. Vom Datum erscheinen ja die Punkte, und auch der Bindestrich zur Uhrzeit.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Manfred »

deshalb meine Frage mit der Var....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Tom »

Was gibt File(AppName()) zurück?
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von brandelh »

AppName( .f. ) geht nur, wenn die EXE im aktuellen Verzeichnis liegt, das kann sich aber ändern !
Oder auf Virtuellen PCs ganz anders aussehen, was passiert bei AppName( .t. )

Wobei ich mich wundere, dass du die Werte nicht direkt in der EXE ablegst ...
Der Compiler ersetzt diese Konstanten mit der zugehörigen Information, d.h. der Wert der Konstanten ändert sich beim kompilieren mehrerer Quellcode-Dateien.

__FILE__ Eine Zeichenkette mit dem Namen der kompilierten Datei.
__FILEPATH__ Eine Zeichenkette mit dem Namen und der Pfadangabe der kompilierten Datei.
__LINE__ Ein numerischer Wert, der die Zeilennummer der Datei angibt, in der die Konstante verwendet wird.
__DATE__ Eine Zeichenkette, die das Datum enthält, an dem die Datei kompiliert wurde. Das Format ist "YYYYMMDD", wobei YYYY für das Jahr, MM den Monat und DD den Tag steht. Dieser Wert kann mittels Stod() in eine Variable des Types Datum umgewandelt werden.

__TIME__ Eine Zeichenkette im Format "HH:MM:SS". Sie gibt die Systemzeit an, bei der eine Datei kompiliert wurde.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Tom »

AppName() geht mit beiden Parametervarianten immer.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Tom »

Ach so. Können FileDate() und FileTime(), die ja beide aus den Tools stammen, möglicherweise nicht mit UNC-Pfaden umgehen?
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von brandelh »

habe ich falsch geschrieben, ich meinte, dass die Funktionen die das auswerten OHNE Pfad auf ein richtig eingestelltes aktuelles Laufwerk vertrauen.
Ich habe festgestellt, dass dies nicht immer der Fall ist und es kann verstellt werden.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Tom »

Aber Jan macht's ja mit Pfad. :wink:
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von brandelh »

TOM hat geschrieben:Aber Jan macht's ja mit Pfad. :wink:
Jan hat geschrieben:

Code: Alles auswählen

oDlgApp:setTitle(AppName(.F.) + " vom " + DToC(FileDate(AppName())) + " - " + FileTime(AppName())
Handbuch hat geschrieben: AppName( [<lFullQualifiedName>] ) --> cExeFileName

Parameter

<lFullQualifiedName>

Der Standardwert für <lFullQualifiedName> ist .F. (falsch). Wird er auf .T. (wahr) gesetzt, gibt die Funktion den Namen der EXE Datei einschließlich Laufwerk und Pfad zurück.

Rückgabe
ich denke nicht ;-)
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Herbert »

Du bekommst keine Datum/Zeitinfo zurück. Warum weiss ich nicht.
Was wäre, wenn jemand das Programm kopiert und dabei einen neuen Datum/Zeitstempel setzt? Selbst dann würde es nicht stimmen.
Deshalb empfehle ich dir, ausschliesslich mit einer Versionsnummer zu arbeiten, welche dir dann den Zeitpunkt des Erstellens verrädt.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Tom »

Hubert hat recht. AppName() defaultet ohne Parameter auf .F., gibt also den Namen der Anwendung ohne Pfad zurück. Jan muss dort AppName(.T.) verwenden, also für FileDate() und FileTime().
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Tom »

Ich binde Produkt- und Versionsinformationen als Ressource ein, wobei beides bei jedem Build automatisch gesetzt wird (es gibt Templates für die ARC-Dateien, die von einem Parser verarbeitet werden). Diese Informationen stehen innerhalb der Anwendung zur Verfügung, aber man kann sie auch - über die Eigenschaften der EXE und der DLLs - von außen sehen. Erstellungsdatum und -uhrzeit können sich möglicherweise ändern, etwa, wenn man die EXE zippt und wieder auspackt (je nach ZIP-Tool).
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von brandelh »

Ich würde Datum und Zeit einbrennen in die EXE, FileTime() und FileDate() wurden geschrieben als es nur eine Zeit für beide gab.
Nun gibt es aber 3 davon und die sind nicht immer leicht zu verstehen, außerdem könnten die Zugriffe auch auf Rechteprobleme stoßen,
auf einem WebServer darf ich z.B. nicht vom "berechneten" Stammverzeichnis aus gehen, sondern muss immer ".\" nutzen, bei eigenen Servern ist das vielleicht anders,
aber mit der automatisch (oder Manuell) eingebrannten Werten ist man auf der sicheren Seite.

MS konform wäre natürlich die Angabe als Resource.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von brandelh »

hier mal als Beispiel meine Umsetzung:

in ANW_ALLG.CH

Code: Alles auswählen

#define chProgrammVersion  "0.00-000"
#define chFileVersion      "0"
#define chProgrammFreigabe "00.00.2012"
in ANW_ALLG.ARC

Code: Alles auswählen

#include  "ANW_ALLG.CH"
...
LANGUAGE = "de"

VERSION

   "CompanyName"      = "..."
   "LegalCopyright"   = "Copyright © ..."
   "ProductName"      = "..."
   "ProductVersion"   = chProgrammVersion
   "FileDescription"  = "..."
   "FileVersion"      = chFileVersion
   "OriginalFilename" = "....EXE"
im Hauptprogramm habe ich dann die Werte in Variablen nochmals gespeichert, da dies einfacher ist. Resourcen Abfrage geht natürlich auch ;-)

Code: Alles auswählen

   // Anwendungsfenster erzeugen (application window)
   oDlg       := HBRootDialog():new( ,, aPos, aSize,, .F. )

   oDlg:title               := HB_PROG_NAME
   oDlg:ProgName            := HB_PROG_NAME
   oDlg:ProgVersion         := chProgrammVersion
   oDlg:ProgVersionMitDatum := HB_PROG_VERSION_MIT_DATUM
   oDlg:ProgFreiDatum       := chProgrammFreigabe
   oDlg:aProgOwner          := HB_PROG_OWNER
   oDlg:aProgUser           := HB_PROG_USER
   oDlg:aLizenzText         := HB_PROG_LIZENZ_TEXT
Gruß
Hubert
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von UliTs »

Jan, was hat sich hieraus ergeben?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von Jan »

Hallo Uli,

das scheint daher gekommen zu sein, das die Programme unter einem anderen Benutzernamen mit anderen Rechten auf dem Server gestartet wurden. Aber warum das so war - keine Ahnung.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Datum und Uhrzeit unter Server 2012R2

Beitrag von satmax »

Tom hat geschrieben:Ich binde Produkt- und Versionsinformationen als Ressource ein, wobei beides bei jedem Build automatisch gesetzt wird (es gibt Templates für die ARC-Dateien, die von einem Parser verarbeitet werden). Diese Informationen stehen innerhalb der Anwendung zur Verfügung, aber man kann sie auch - über die Eigenschaften der EXE und der DLLs - von außen sehen. Erstellungsdatum und -uhrzeit können sich möglicherweise ändern, etwa, wenn man die EXE zippt und wieder auspackt (je nach ZIP-Tool).
Das ist eindeutig die bevorzugte und auch meine Variante, damit sieht man auch über die Eigenschaften die Programmversion (wenn sich das Programm mal nicht mehr starten lässt).
Gruß
Markus
Antworten