Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   GetVersionEx unter Windows 10 (https://www.delphipraxis.net/183179-getversionex-unter-windows-10-a.html)

Daniel 19. Dez 2014 12:32

AW: GetVersionEx unter Windows 10
 
Stop, stop stop.
Es ging um die Prüfung der Windows-Version. Um Screenshots von Arbeitsplätzen aus Arztpraxen geht es hier nicht. :roll: Bleibt bitte beim Thema.


"IsWindowsVersionOrGreater " ist im MSDN mit folgendem Kommentar versehen:
Zitat:

Important You should only use this function if the other provided Version Helper functions do not fit within your scenarios.

dGeek 20. Dez 2014 19:03

AW: GetVersionEx unter Windows 10
 
Haut mich nicht, aber ich hole das Thema noch einmal hervor, sodass es nicht untergeht.

dGeek 20. Dez 2014 19:20

AW: GetVersionEx unter Windows 10
 
Zitat:

Zitat von Daniel (Beitrag 1283833)
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?

mm1256 20. Dez 2014 19:44

AW: GetVersionEx unter Windows 10
 
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.

dGeek 20. Dez 2014 19:51

AW: GetVersionEx unter Windows 10
 
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.

mm1256 20. Dez 2014 20:00

AW: GetVersionEx unter Windows 10
 
Wo gibt es denn die Komponente - und ist die mit Source?

BTW ich habe gesucht, aber nichts gefunden. "version" ist ein ignoriertes Suchwort :?

dGeek 20. Dez 2014 20:04

AW: GetVersionEx unter Windows 10
 
Die folgende Komponente ist bis Windows 7 kompatibel und lässt sich sehr einfach bis Windows 10 erweitern:
http://www.delphipraxis.net/97999-%5...erkennung.html

Sir Rufo 20. Dez 2014 21:12

AW: GetVersionEx unter Windows 10
 
Mal eine ganz doofe Frage:

Wann und wozu benötige ich die konkrete Windows-Version (wenn ich kein "Ich-zeige-die-Windows-Version-an" Programm schreiben will)?

Es gibt APIs die ab einer Version erst vorhanden sind, welche, die ab einer Version ersetzt wurden oder (gibt es das) ab einer Version ersatzlos gestrichen wurden.

In die Zukunft kann ich nicht schauen, darum kann ich also auch nicht garantieren, dass alles immer funktioniert. Aber alle diese oben genannten Szenarien kann ich mit
Delphi-Quellcode:
IsWindowsVersionOrGreater
komplett behandeln ... und das funktioniert seit Windows 2000.

dGeek 20. Dez 2014 21:14

AW: GetVersionEx unter Windows 10
 
Ich nutze die Versionsabfrage für statistische Gründe ;)

Dalai 20. Dez 2014 22:47

AW: GetVersionEx unter Windows 10
 
Zitat:

Zitat von mm1256 (Beitrag 1284218)
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.

Zitat:

Zitat von Sir Rufo (Beitrag 1284230)
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Seite 3 von 4     123 4      

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