AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OS Version Windows 10 ermitteln.

Ein Thema von Gerd01 · begonnen am 7. Aug 2015 · letzter Beitrag vom 18. Jun 2019
Antwort Antwort
Seite 3 von 8     123 45     Letzte »    
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#21

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 11:36
Also den Aufwand, die API zu testen, ob die Funktion noch existiert oder noch gültig ist wird niemand durchführen. Im Übrigen gibt es ja unter Windows 10 zum Beispiel die Function GetVersionEx noch. Sie liefert aber falsche Ergebnisse.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#22

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 11:42
@Gerd01 @Daniel ooops...jetzt, nach nochmaligem lesen...du hast wohl Sir Rufo gemeint und nicht mich. Bitte vielmals um Entschuldigung.

Kann es sein, dass meine mangelnde Konzentration an der Hitze liegt? Ich hab hier schon 34 Grad.

EDIT: Vielleicht nochmals zum eigentlichen Thema: Es ist zu erwarten, dass MS die Build-Nummern mit Win 10 jetzt in ziemlich kurzen Abständen hoch zählt. Ist das nicht ein weiterer guter Grund, zumindest die Registry-Einträge mit zu verwenden?
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen

Geändert von mm1256 ( 8. Aug 2015 um 11:45 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 11:45
Man muss natürlich aufpassen, dass man sich in der ganzen Prüferei nicht verliert.
Aber: Ich kann mir schon vorstellen, vom Betriebssystem eine Dienstleistung in Anspruch nehmen zu wollen und prüfe dann, ob die dafür benötigten Funktionen zu Verfügung stehen - oder eben nicht. Der Fokus läge dann auf dem Vorhandensein einer Funktionalität und nicht auf der Versionsnummer des Betriebssystems. Es wäre irrelevant, ob es Windows 95, 10, 8 oder 42 mit Servicepack 4 wäre.
Das kann in einigen Fällen flexibler sein - ich denke da an Windows Vista, welches nachträglich noch mal einen Satz an Funktionen via ServicePack erhalten hat.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 12:34
Im Übrigen gibt es ja unter Windows 10 zum Beispiel die Function GetVersionEx noch. Sie liefert aber falsche Ergebnisse.
Wie schon gesagt liefert GetVersionEx nicht die Falsche Info wenn man den passenden Manifesteintrag hat.
Was es mit diesen Eintrag auf sich hat wird hier erklärt: http://blogs.msdn.com/b/chuckw/archi...t-madness.aspx

Ohne Eintrag läuft deine App halt im Kompatiblitätsmodus. Das Verhalten ist schon seit Windows Vista so (Oder auch XP da ja dort das Manifest erstmal eingeführt wurde).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 12:37
Es ist zu erwarten, dass MS die Build-Nummern mit Win 10 jetzt in ziemlich kurzen Abständen hoch zählt. Ist das nicht ein weiterer guter Grund, zumindest die Registry-Einträge mit zu verwenden?
Die Buildnummern sind nochmal ein eigener Eintrag. Diese hat früher nicht gestört und wird auch in Zukunft nicht stören.
Aber evtl. braucht man diese in Zukunft mehr wen MS die Aussage "Windows 10 wird die letzte Windows(Major)Version werden" und "Neue Features gibts nur bei Installation aller Updates" das man dann das Vorhandensein (und die funktionsfähigkeit) von Features über die Buildnummer bestimmen muss.
Aber lassen wir uns beim ersten Feature-Update überraschen was MS sich ausgedacht hat. Evtl. steht ja schon in den MSDN-Untiefen schon etwas beschrieben wie man das dann SW-Technisch unterscheidet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#26

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 12:43
Man muss natürlich aufpassen, dass man sich in der ganzen Prüferei nicht verliert.
YUPP - es kommt eben wie schon gesagt auf den Zweck an. Da ich ja heute zufällig an diesem Thema arbeite, anbei mal mein aktueller Stand. Nicht mehr als eine kleine kompakte Unit, so ähnlich stelle ich mir das vor, und vielleicht ist auch für Gerd eine Anregung dabei. Ist noch Beta-Status!! Wer mag, kann bei den noch offenen Strings gerne ergänzen.
Angehängte Dateien
Dateityp: pas RuWinVer.pas (4,1 KB, 126x aufgerufen)
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#27

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 16:59
Man bekommt im Übrigen die Versionsnummer auch heraus, wenn man die Versionsnummer der kernel32.dll ausliest. Die sollte eigentlich immer mit der Version konform gehen und auch immer vorhanden sein.

Nur für den Fall, das jemand eine Versionsnummer benötigt und sich nicht auf die Registry verlassen möchte und sich auch nicht von GetVersionEx täuschen lassen möchte (die im Übrigen in genau dieser kernel32.dll ihre Heimat hat).

Nachtrag

Eine kurze Recherche auf den MS-Seiten bringt dann Folgendes zu Tage:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724429%28v=vs.85%29.aspx

To obtain the full version number for the operating system, call the GetFileVersionInfo function on one of the system DLLs, such as Kernel32.dll, then call VerQueryValue to obtain the \\StringFileInfo\\<lang><codepage>\\ProductVersion subblock of the file version information.

Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 8. Aug 2015 um 17:08 Uhr)
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#28

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 17:38
Gut recherchiert Sir Rufo !

Auf den Trichter bin ich früher übrigens auch schon mal gekommen, aber die OS-Version bekommt man hierüber auch wieder nur über den Key "ProductVersion" und über die Umwege des Zerlegens und Auswertens der ProductVersion (MajorVersion.MinorVersion.Build).
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#29

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 18:47
Man bekommt im Übrigen die Versionsnummer auch heraus, wenn man die Versionsnummer der kernel32.dll ausliest. Die sollte eigentlich immer mit der Version konform gehen und auch immer vorhanden sein.

Nur für den Fall, das jemand eine Versionsnummer benötigt und sich nicht auf die Registry verlassen möchte und sich auch nicht von GetVersionEx täuschen lassen möchte (die im Übrigen in genau dieser kernel32.dll ihre Heimat hat).
Das ist aber auch nur der aktuelle Stand. Wenn in 5 Jahren MS die kernel32.dll aufgibt und diese in eine andere DLL verlagert klappt es damit auch wieder nicht.
Und falls jemand als Gegenargument liefert: Aber in den Delphi-Sourcen steht doch das die Funktion in kernel32 liegt. Windows kann den Ladeprozess bei benötigten DLLs umbiegen. In der Exe steht "kernel32.dll wird benötigt", Windows lädt dann aber "superduper32.dll".

Die Wahrscheinlichkeit ist zwar gering das das passiert, aber ausgeschlossen ist das nicht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
bepe

Registriert seit: 17. Okt 2006
119 Beiträge
 
#30

AW: OS Version Windows 10 ermitteln.

  Alt 8. Aug 2015, 19:16
Das ist aber auch nur der aktuelle Stand. Wenn in 5 Jahren MS die kernel32.dll aufgibt und diese in eine andere DLL verlagert klappt es damit auch wieder nicht.
Und falls jemand als Gegenargument liefert: Aber in den Delphi-Sourcen steht doch das die Funktion in kernel32 liegt. Windows kann den Ladeprozess bei benötigten DLLs umbiegen. In der Exe steht "kernel32.dll wird benötigt", Windows lädt dann aber "superduper32.dll".

Die Wahrscheinlichkeit ist zwar gering das das passiert, aber ausgeschlossen ist das nicht.
Ist das dein Ernst? Mal abgesehen davon, dass wir von Windows reden, das ist immerhin bis in die Steinzeit abwärtskompatibel, dürfte ich mit dem "Argument" gar keine Software mehr schreiben. Immerhin könnten sich alle dokumentierten Funktionen mal ändern.

Benutz ja nicht die Bremse! In autonomen Fahrzeugen wird es vielleicht keine geben. Also gewöhn dich nicht daran.

(Sorry, aber das absurd breite Grinsen hat mich zu diesem Post gezwungen.)

mfg,
bp
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 8     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 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