AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Windows Version ermitteln

Ein Thema von Willie1 · begonnen am 23. Mai 2024 · letzter Beitrag vom 31. Mai 2024
Antwort Antwort
mmw
(Gast)

n/a Beiträge
 
#1

AW: Windows Version ermitteln

  Alt 23. Mai 2024, 18:17
Hallo,
mit WMI funktioniert es.

Delphi-Quellcode:
procedure GetCIM_OperatingSystemInfo;
const
  WbemUser = '';
  WbemPassword = '';
  WbemComputer = 'localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator,
  FWMIService,
  FWbemObjectSet,
  FWbemObject: OLEVariant;
  oEnum: IEnumvariant;
  iValue: LongWord;

begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  FWbemObjectSet := FWMIService.ExecQuery('SELECT * FROM CIM_OperatingSystem', 'WQL', wbemFlagForwardOnly);

   oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
    while oEnum.Next(1, FWbemObject, iValue) = 0 do
     begin
      memo1.Lines.add(FWbemObject.Caption); //<<------ müsste entsprechend angepasst werden.
      FWbemObject:=Unassigned;
     end;
end;
aufruf

Delphi-Quellcode:

begin
 try
  memo1.Lines.clear;
  coInitialize(nil);
   try
    GetCIM_OperatingSystemInfo;
   finally
    CoUninitialize;
   end;

  except
   on E:EOleException do
       showmessage(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    on E:Exception do
        ShowMessage(E.Classname+' : '+ E.Message);
  end;
end;
ich habe es hiermit erstellt.

https://github.com/RRUZ/wmi-delphi-code-creator

Gruß
  Mit Zitat antworten Zitat
kopernikus

Registriert seit: 8. Feb 2008
19 Beiträge
 
Delphi 10 Seattle Professional
 
#2

AW: Windows Version ermitteln

  Alt 23. Mai 2024, 18:56
Man erkennt Windows 11 auch an der Build-Nummer. Sie ist größer oder gleich 22000.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
691 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Windows Version ermitteln

  Alt 24. Mai 2024, 17:31
Hallo,
mit WMI funktioniert es.
Ja, das stimmt! Vielen Dank. Nur wenn ich mir den Quelltext ansehe, frage ich mich, muss es so kompliziert sein? Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Windows Version ermitteln

  Alt 24. Mai 2024, 17:42
Delphi-Referenz durchsuchenTOSVersion

Aber wie es oft genug gesagt wird: Es wird nicht auf Versionen geprüft, sondern auf das Feature, welches benötigt wird.
Genauso, wie man nicht auf "Admin" prüft, sondern auf das Recht, welches nötig ist.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.259 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Windows Version ermitteln

  Alt 24. Mai 2024, 18:25
Es wird nicht auf Versionen geprüft, sondern auf das Feature
Das ist natürlich Unsinn.

Jeder, der sich mit den MS Produkten auskennt, weiß, dass er auf beides prüfen muss.
Feature in Windows X muss nicht die gleichen Funktionen wie das gleiche Feature in Windows Y haben.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.910 Beiträge
 
Delphi 12 Athens
 
#6

AW: Windows Version ermitteln

  Alt 24. Mai 2024, 21:47
Es wird nicht auf Versionen geprüft, sondern auf das Feature
Das ist natürlich Unsinn.

Jeder, der sich mit den MS Produkten auskennt, weiß, dass er auf beides prüfen muss.
Feature in Windows X muss nicht die gleichen Funktionen wie das gleiche Feature in Windows Y haben.
Den Fall hatte ich bisher tatsächlich extrem selten. Bisher konnte ich fast immer auf das Feature testen, und in den anderen Fällen wäre das mit etwas mehr Aufwand vermutlich auch gegangen, da ging es z.B. um das Touchhandling.

In welchen Fällen brauchtest du denn die Unterscheidung?

Microsoft hat wohl kein großes Interesse an Windows 11, sonst würden sie W11 eine neue Versionsnummer gönnen.
Tatsächlich hat Microsoft die echte Windowsversion aktiv vor Programmen verborgen, weil viele Entwickler auf die geniale Idee gekommen waren, auf bestimmte Versionen zu prüfen. Deshalb funktionierten plötzlich Programme mit einer neuen Version von Windows nicht mehr, obwohl es technisch gar kein Problem gegeben hätte. Das ist auch einer der Gründe, weshalb es keine größeren Sprünge mehr gab.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (24. Mai 2024 um 21:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Windows Version ermitteln

  Alt 24. Mai 2024, 22:38
Das Auslesen über die API hängt auch noch von der Virtualisierung ab.
Wird das Programm für Windows XP virtualisiert, dann sagt die API auch, es sei ein XP.

Da man dann auch die Features von XP bekommt, wäre bei einer Prüfung auf die Version dann XP auch vollkommen richtig,
und sich irgendwie auf wirren Wegen die "echte" Version zu besorgen bringt dann ja nicht viel, wenn dann das gewünschte Feature dort nicht erreichbar ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Mai 2024 um 22:43 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
691 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

AW: Windows Version ermitteln

  Alt 26. Mai 2024, 17:05
Hi,
mein alter Kindergartenfreund schwört auf Windows 7 und das soll die älteste Version sein, die meine Programme unterstützen. Ihr hattet mir schon vor Jahren abgeraten, Abfragen wie if IsWin7 then zu benutzen. Ich frage überhaupt nichts ab. Das macht schon das Installationsprogramm InnoSetup. Ich will nur eine korrekte Anzeige der Windows Version in der About-Box. Siegt sonst doof aus. Die Größe des Arbeitsspeichers, die ich auch anzeige ist zum Glück seid Delphi 6 bis heute (Windows 98-Win 11) richtig geblieben.

Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:37 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