AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Feststellen, welches Betriebssystem läuft (D2010 /Win7)
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen, welches Betriebssystem läuft (D2010 /Win7)

Ein Thema von Kurt56 · begonnen am 17. Mai 2010 · letzter Beitrag vom 31. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Kurt56
Kurt56

Registriert seit: 6. Apr 2005
Ort: Wedemark
47 Beiträge
 
Delphi XE8 Professional
 
#1

Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 17. Mai 2010, 22:31
Feststellen, welches Betriebssystem läuft funktionierte unter D7 mit:

Delphi-Quellcode:
function TInfoForm.GetWindowsVersion : string;
var myOsVersion : _OSVERSIONINFO;
begin
myOsVersion.dwOSVersionInfoSize := 148;
GetVersionExA(myOsVersion); //<Fehlermeldung unter D2010 unter Windows 7
case myOsVersion.dwPlatformId of
  1:begin
    if (myOsVersion.dwMajorVersion =4 ) and
       (myOsVersion.dwMinorVersion = 0) then
         Result := 'Windows 95';
    if (myOsVersion.dwMajorVersion =4 ) and
       (myOsVersion.dwMinorVersion = 10) then
         Result := 'Windows 98';
    end;
  2:begin
    if (myOsVersion.dwMajorVersion =3 ) then
         Result := 'Windows NT 3.51';
    if (myOsVersion.dwMajorVersion =4 ) then
         Result := 'Windows NT 4';
    if (myOsVersion.dwMajorVersion =5 ) and
       (myOsVersion.dwMinorVersion = 0) then
         Result := 'Windows 2000';
    if (myOsVersion.dwMajorVersion =5 ) and
       (myOsVersion.dwMinorVersion = 1) then
         Result := 'Windows XP';
    end;
  else
    Result := 'unbekannt';
  end;
end;
[DCC Fehler] Info1.pas(53): E2250 Es gibt keine überladene Version von 'GetVersionExA', die man mit diesen Argumenten aufrufen kann

Kann jemand sagen, wie die OS-Version unter D2010 abgerufen werden kann?
Kurt
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 17. Mai 2010, 22:42
Hallo Kurt,

vielleicht hilft dir das weiter: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennung
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 17. Mai 2010, 22:54
GetVersionExA wenn du die W Variante nimmst, solltest du mehr erfolgt haben.

GetVersionExW
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
rawi

Registriert seit: 16. Mär 2010
Ort: im Westen Deutschlands
38 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 17. Mai 2010, 23:06
Du solltest auch die Zeile

Zitat:
myOsVersion.dwOSVersionInfoSize := 148;
in
  myOsVersion.dwOSVersionInfoSize := SizeOf(myOsVersion); ändern.

gruß rawi
  Mit Zitat antworten Zitat
Benutzerbild von Kurt56
Kurt56

Registriert seit: 6. Apr 2005
Ort: Wedemark
47 Beiträge
 
Delphi XE8 Professional
 
#5

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 18. Mai 2010, 07:40
Herzlichen Dank.

Es funktioniert.

Nun habe ich noch eingebaut:

Delphi-Quellcode:
    if (myOsVersion.dwMajorVersion =6 ) and
       (myOsVersion.dwMinorVersion = 1) then
         Result := 'Windows 7';
und er zeigt mir auch meine Betriebssystemversion.
Danke sehr
Kurt
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 18. Mai 2010, 07:41
Und wieso wird nicht eine der zig fertigen Funktionen aus der JCL, ElPack, ... verwendet und schon wieder die tausendste eigene Implementierung gemacht?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 18. Mai 2010, 08:04
Zitat von Bernhard Geyer:
Und wieso wird nicht eine der zig fertigen Funktionen aus der JCL, ElPack, ... verwendet und schon wieder die tausendste eigene Implementierung gemacht?
PS: bei was fertigen bräuchtest du nur ab und zu ein Update einspielen und brauchst dann nicht selber ständig alle neuen Versionen aufzunehmen.

PS: Gibt es eigentlich eine Komponente, welche sich notfalls eine Liste aus dem Internet zieht?
(ich finde es immer witzig, wenn ein Programm neuere Windowse einfach nicht kennt oder gar was vollkommen falsches anzeigt ... mein Vista wurde von einem Programm auch schonmal für Win98 gehalten)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Kurt56
Kurt56

Registriert seit: 6. Apr 2005
Ort: Wedemark
47 Beiträge
 
Delphi XE8 Professional
 
#8

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 18. Mai 2010, 11:19
Zitat von Bernhard Geyer:
Und wieso wird nicht eine der zig fertigen Funktionen aus der JCL, ElPack, ... verwendet und schon wieder die tausendste eigene Implementierung gemacht?
Vielleicht, weil ICH die nich kenne

Wo findet man denn diese Funktionen?
Kurt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 18. Mai 2010, 11:31
Eine wurde doch oben schon genannt?

PS: Nochmal zu deinem Code:
Zitat:
OSVERSIONINFO (dynamisch) + GetVersionExA (ANSI)
Sowas macht man auch nicht

GetVersionEx + OSVERSIONINFO
GetVersionExA + OSVERSIONINFOA
GetVersionExW + OSVERSIONINFOW

Du nimmst explizit die Ansi-Verison von GetVersionEx, aber willst diese mit der dynamisch Version des Records OSVERSIONINFO kombinieren, welche ab Delphi 2009 doch auf Unicode (OSVERSIONINFOW) weitergeleitet wird.

Zitat:
Es gibt keine überladene Version von 'GetVersionExA', die man mit diesen Argumenten aufrufen kann
Bei sowas schaut man nach, was diese Funktion für Argumente/Parameter haben will und dann wäre einem der Fehler auch selber aufgefallen.


Was willst du eigentlich genau erreichen, bzw. wozu benötigst du denn diese Information?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Kurt56
Kurt56

Registriert seit: 6. Apr 2005
Ort: Wedemark
47 Beiträge
 
Delphi XE8 Professional
 
#10

Re: Feststellen, welches Betriebssystem läuft (D2010 /Win7)

  Alt 18. Mai 2010, 13:57
Nun schimpfe nicht gleich, ich bin kein Superspezialist, sondern schreibe für uns die Zusatzprogramme
die mir helfen sollen, bei meinem Job.

Die Auftragsbearbeitung, Fakturierung, Lagerverwaltung,
das Bestellwesen, die Auswertungen aus Finanzbuchhaltung und Kostenrechnung
und die Bilanzierung.

Nun ist die Programmierung für mich doch spannender, als das Bilanzmodernisierungsgesetz (BilMoG),
aber ich bin kein Systemspezialist, weshalb mir dann solche Fehler nicht auffallen.

Ich benötige die Abfrage, weil die Erfassungsrechner Touchscreen unter Win7 laufen (sollen)
während die "alten" Rechner eben die normale Tastatur haben.
Also muß ich mich durch die TouchScreen-Sache beißen.

Also werde nicht böse, ich lerne noch.

PS: Die o.g. Programme habe ich schon vor Jahren (unter Delphi 7) erstellt und die laufen auch.
Aber es kommen eben auch immer neue Wünsche und Verbesserungen.
Außerdem lernt man ja auch dazu, so daß ich im Laufe der Zeit das eine oder andere geändert und erweitert habe.
Ich habe das alles einmal selber geschrieben, es funktioniert sogar.
Kurt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:16 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