![]() |
Re: auslesen der windowsversion
Ähm, die Deklaration sieht so aus
Delphi-Quellcode:
Ich weiss nicht, wie du auf den Pointer kommst, onlinehome...
function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL; stdcall;
@Luckie: Das mit den IFDEFs ist dazu da, bei den Leuten, bei denen diese Struktur noch nicht definiert ist, diese zu definieren (ältere Delphi-Version?) mfG mirage228 |
Re: auslesen der windowsversion
Zitat:
Delphi-Quellcode:
{$IFDEF CONDITIONALEXPRESSIONS} // Wird $IF unterstützt?
// (wenn nicht, dann kennt die Delphi-Version TOSVersionInfoEx // wahrscheinlich nicht, im schlimmste Falle wird es in der // Unit definiert und überschreibt die Windows.pas -Version) {$IF Defined(TOSVersionInfoEx)} // TOSVersionInfoEx vorhanden? {$DEFINE TOSVERSIONINFOEX_DEFINED} // merken :) {$IFEND} {$ENDIF} {$IFNDEF TOSVERSIONINFOEX_DEFINED} Zitat:
GetOSVersionText kann sich jeder selbst schreiben. Wer die Struktur selbst auswerten will, braucht nur GetOSVersionInfo. |
Re: auslesen der windowsversion
Aus dem Grund habe ich mir eine separate Unit (Windows_Fragment.pas) deklariert, die ich hinter der Original-Windows-Unit einbinde. Auf die Weise kann ich auch mein Delphi 5 aktuell halten, ohne in Borlands Units rumfummeln zu müssen. ;)
Zitat:
Code:
:stupid:
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
{ printf ("Microsoft Windows 95 "); if ( osvi.szCSDVersion[1] == 'C' || osvi.szCSDVersion[1] == 'B' ) printf("OSR2 " ); } |
Re: auslesen der windowsversion
Zitat:
![]() (mal ganz davon abgesehen, dass bei neuen Windows-Versionen komische Ergebnisse rauskommen wenn man das MSDN-Beispiel 1:1 übernimmt...) |
Re: auslesen der windowsversion
Nein, in dem Fall dürfte das Problem wohl bei mir liegen. Das wollte ich damit sagen. Im PSDK steht eindeutig "[1]" drin, ich habe an gleicher Stelle nur dummerweise "[0]" benutzt. :(
Na ja, was neue Versionen angeht, das kann ich nicht beurteilen. Mein Vorschlag für künftige OS-Prüfungen:
Delphi-Quellcode:
procedure GetOSVersion;
begin MessageBox(0,'Schau auf deine Schachtel, dann weißt du es!', 'Meldung',MB_OK or MB_ICONINFORMATION); end; begin GetOSVersion; end; |
Re: auslesen der windowsversion
Zitat:
Ich meinte eigentlich
Code:
...es gibt kein 95C mit Minor 0 (auch das PSDK irrt sich manchmal (wollte ich damit sagen))
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == [color=red]0[/color])
{ printf ("Microsoft Windows 95 "); if ( osvi.szCSDVersion[1] == [color=red]'C'[/color] || osvi.szCSDVersion[1] == 'B' ) printf("OSR2 " ); } |
Re: auslesen der windowsversion
naja, das is ungefähr so intelligent, wie ein vorschlag aus der schule für eine funktion:
man nehme eine prozedur, schreibe den return-wert aufn bildschirm und frage dann den nutzer, was denn da bitte steht.... :) in delphi gibts doch (fast) alles, es muss doch irgendwo versteckt was geben, so in der art var version:string; begin version:=getwinversion(computername); end. oder so ähnlich. da sollte man borland ma ne mail schicken..... |
Re: auslesen der windowsversion
Moin glkbkk,
Zitat:
|
Re: auslesen der windowsversion
Zitat:
|
Re: auslesen der windowsversion
Hi,
@Mathias: Nun, da Du einen Fehler in Deinem Code gefunden hast, solltest Du ihn vielleicht in der Code-Library verbessern bzw. Nico sollte seine Version evtl. dazuposten, oder? Gruß, Markus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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