AGB  ·  Datenschutz  ·  Impressum  







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

GetVersionEx unter Windows 10

Ein Thema von greenmile · begonnen am 18. Dez 2014 · letzter Beitrag vom 21. Dez 2014
Antwort Antwort
Seite 2 von 2     12   
dGeek
(Gast)

n/a Beiträge
 
#1

AW: GetVersionEx unter Windows 10

  Alt 20. Dez 2014, 19:20
Allem Anschein nach verabschiedet sich MS von den konkreten Versionsnummern als Entscheidungskriterium und möchte uns Entwickler dazu bewegen, auf Releases zu prüfen:

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
  • IsWindows7OrGreater
  • IsWindows7SP1OrGreater
  • IsWindows8OrGreater
  • IsWindows8Point1OrGreater
  • IsWindowsServer
  • IsWindowsVistaOrGreater
  • IsWindowsVistaSP1OrGreater
  • IsWindowsVistaSP2OrGreater
  • IsWindowsXPOrGreater
  • IsWindowsXPSP1OrGreater
  • IsWindowsXPSP2OrGreater
  • IsWindowsXPSP3OrGreater
  • IsWindowsVersionOrGreater
Man müsste also erst prüfen, ob eine der genannten Funktionen in der Kernel32.dll vorhanden ist und ggf. auch nutzen - wenn nicht, dann auf die alten Funktionen ausweichen, die dann ja - da man offenbar auf einem älteren Windows ist - zuverlässig laufen.
Ich denke da an einen Delphi-Wrapper, der einem diese ganze Fragerei wegkapselt.

Diesbezüglich verstehe ich überhaupt nichts mehr (zu viele sinnlose Änderungern).
Daher eine total dumme Frage:

damit ich die neuen APIs (siehe oben) nutzen kann ..
- muss ich meine Software unter Windows 8.1 kompilieren
oder
- kann ich die aktuell auch mit meinem XE2 unter Windows 7 Home Edition nutzen
oder
- brauche ich eine neue Delphi-Version UND Windows 8.1?
  Mit Zitat antworten Zitat
mm1256

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

AW: GetVersionEx unter Windows 10

  Alt 20. Dez 2014, 19:44
Hallo dGeek,

[edit] erst mal, es gibt keine dummen Fragen, nur leider viel zu oft dumme Antworten[/edit] ...das wollte ich noch los werden

Zitat:
damit ich die neuen APIs (siehe oben) nutzen kann ..
- muss ich meine Software unter Windows 8.1 kompilieren
nein

Zitat:
- kann ich die aktuell auch mit meinem XE2 unter Windows 7 Home Edition nutzen
bringt nur ab Win 8 was

Zitat:
- brauche ich eine neue Delphi-Version UND Windows 8.1?
Das geht mit (fast???) jedem Delphi, ist ja WinApi

Soweit ich das verstehe - also Bitte an die Wissenden: korrigieren wenn ich es falsch verstanden habe - die neue API ist ein Ersatz für die alten Funktionen GetVersion und GetVersionEx ab Windows 8.0. Mit allen vorherigen Versionen funktioniert GetVersion und GetVersionEx nach wie vor. Es gibt auch keine Fehlermeldung, wenn du die Beiden unter 8.0, 8.1, Server 2012 usw. verwendest. Es werden aber nicht mehr alle Daten in der TOSVersionInfoEx zur Verfügung gestellt, z.B. die "dwBuildNumber". GetVersion und GetVersionEx sind also ab Windows 8.0 nicht mehr geeignet, die Windows-Version zu bestimmen.

Das war ja mein Ansatz: Wenn sich die MS-Ler schon für neuere Windows-Versionen immer wieder neue Tugenden einfallen lassen um die Version zu bestimmen, dann habe ich doch mit "älterer" (vor einigen Jahren compilierter) Software generell das Problem, dass eine neue Windows-Version mit GetVersionEx gar nicht erkannt wird. Die alte Software glaubt, sie läuft immer noch unter Win7. Und das ist das Fatale daran, wenn man sich früher ausschließlich auf GetVersionEx verlassen hat. Und darum bin ich auch froh darüber, zusätzlich zu GetVersionEx die Build-Nummer aus der Registry ausgelesen zu haben. Der Vergleich ergibt nämlich bei meiner alten Software einen Unterschied, und das ist der Nutzen daran. Wie man mit der Erkennung des Unterschiedes umgeht, darüber wurde ja schon diskutiert.
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 (20. Dez 2014 um 19:46 Uhr) Grund: es gibt keine dummen Fragen
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#3

AW: GetVersionEx unter Windows 10

  Alt 20. Dez 2014, 19:51
Ich nutze für die Versionsprüfung die bereits von mir hier im Forum gepostete downloadbare Komponente und die funktioniert bis Windows 10 inklusive dwBuildNumber etc. mit GetVersionExW sehr gut.
  Mit Zitat antworten Zitat
mm1256

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

AW: GetVersionEx unter Windows 10

  Alt 20. Dez 2014, 20:00
Wo gibt es denn die Komponente - und ist die mit Source?

BTW ich habe gesucht, aber nichts gefunden. "version" ist ein ignoriertes Suchwort
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 Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#5

AW: GetVersionEx unter Windows 10

  Alt 20. Dez 2014, 22:47
Soweit ich das verstehe - also Bitte an die Wissenden: korrigieren wenn ich es falsch verstanden habe - die neue API ist ein Ersatz für die alten Funktionen GetVersion und GetVersionEx ab Windows 8.0. Mit allen vorherigen Versionen funktioniert GetVersion und GetVersionEx nach wie vor.
Ab Win8.1, wobei es möglich ist, dass MS hier seit 8.0 anregte, die neuen Funktionen zu nutzen bzw. die alten nicht zu benutzen. Ein 8.0 lässt sich auch mit GetVersionEx korrekt erkennen, 8.1 und höher nur dann, wenn die Applikation ein Manifest mit passender Kompatibilität aufweist.

Mal eine ganz doofe Frage:
Nö, die ist nicht doof, denn es gibt nur schlaue Fragen.

Zitat:
Wann und wozu benötige ich die konkrete Windows-Version (wenn ich kein "Ich-zeige-die-Windows-Version-an" Programm schreiben will)?
Ich habe ein Projekt namens Automatisierung, das Software automatisiert auf Windows installieren kann, ohne jedes Mal von Hand alle Installationsroutinen durchzuklappern. Zu diesem Zweck muss meine Automatisierung die Windows-Version kennen, um einige dieser Software-Produkte von vornherein gar nicht erst anzuzeigen, weil einige davon unter bestimmten Windows-Versionen gar nicht erst laufen. Dazu muss genau festlegbar sein, unter welchen Windows-Versionen die Software läuft, denn einige verweigern nunmal den Dienst auf neueren oder älteren Versionen.

MfG Dalai
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#6

AW: GetVersionEx unter Windows 10

  Alt 20. Dez 2014, 23:00
Zitat:
Ein 8.0 lässt sich auch mit GetVersionEx korrekt erkennen, 8.1 und höher nur dann, wenn die Applikation ein Manifest mit passender Kompatibilität aufweist.
Ich hatte es eben mal unter Windows 10 getestet und dort wird Windows von meiner Software korrekt erkannt, obwohl ich GetVersionEx(W) nutze.
Spezielle Manifeste nutze ich nicht
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#7

AW: GetVersionEx unter Windows 10

  Alt 21. Dez 2014, 07:35
Ein 8.0 lässt sich auch mit GetVersionEx korrekt erkennen, 8.1 und höher nur dann, wenn die Applikation ein Manifest mit passender Kompatibilität aufweist.
Wenn es das nicht tut, dann wird es wie ein altes Programm behandelt und einige Dinge werden emuliert/umgeleitet, damit es fast so ist, als liefe es in einem alten Windows.
Und somit hat sich das Problem auch gelöst.

Ob es aber inntelligent ist, das Programm einfach nicht mehr zu starten, nur weil das Windows angeblich zu neu ist, ist auch keine gute Lösung.
> Schadensersatzansprüche?

Dann bringt Mikrosoft ein Windowsupdate raus, das ändert die Version und schon knallt es wieder, weil sich die Version geändert hat.

Eine Warnmeldung wäre ja auch möglich.
Und wie bereits erwähnt, kann man die Zukunft nicht planen, also kann man mit Sicherheit nur auf alte Versionen reagieren und eine Warnung/Funktionsverweigerung explizit auf "bekannte" Probleme ausrichten.
"Sie verwenden Windows 98. Hier gibt bekannte es es Probleme, welche die korekte Funktion des Programms beeinflussen ... Tschüss"
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Dez 2014 um 07:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: GetVersionEx unter Windows 10

  Alt 21. Dez 2014, 08:10
Soweit ich das verstehe - also Bitte an die Wissenden: korrigieren wenn ich es falsch verstanden habe - die neue API ist ein Ersatz für die alten Funktionen GetVersion und GetVersionEx ab Windows 8.0. Mit allen vorherigen Versionen funktioniert GetVersion und GetVersionEx nach wie vor.
Ab Win8.1, wobei es möglich ist, dass MS hier seit 8.0 anregte, die neuen Funktionen zu nutzen bzw. die alten nicht zu benutzen. Ein 8.0 lässt sich auch mit GetVersionEx korrekt erkennen, 8.1 und höher nur dann, wenn die Applikation ein Manifest mit passender Kompatibilität aufweist.
Das ist aber schon seit Windows Vista so. Nicht umsonst laufen unsere Anwendungen mit 4 ID für Vista, 7, 8 und 8.1
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 09:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz