AGB  ·  Datenschutz  ·  Impressum  







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

auslesen der windowsversion

Ein Thema von glkgereon · begonnen am 20. Mär 2004 · letzter Beitrag vom 23. Aug 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#11

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 10:26
Ähm, die Deklaration sieht so aus

function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL; stdcall; Ich weiss nicht, wie du auf den Pointer kommst, onlinehome...

@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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#12

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 10:41
Zitat von Luckie:
könntest du mal die {$IFDEF}'s erklären
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 von Luckie:
was das soll und warum die erste Funktion
Der Übesichtlichkeit halber (versucht die bestmögliche Version von TOSVersionInfo zu holen).
GetOSVersionText kann sich jeder selbst schreiben. Wer die Struktur selbst auswerten will, braucht nur GetOSVersionInfo.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#13

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 10:41
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 von NicoDE:
Warum hat sich noch keiner über
Delphi-Quellcode:
          if(osvi.szCSDVersion[0] = 'C') or
            (osvi.szCSDVersion[0] = 'B') then Result := Result + 'OSR2 ';
beschwert?
(der szCSDVersion ist in dem Falle ' A ', ' B ', ... - man achte auf die Leerzeichen )
Weil vermutlich keiner mehr mit Windows 95 arbeitet? Au weia. Ich sehe gerade, dass es im PSDK so aussieht:
Code:
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
{
  printf ("Microsoft Windows 95 ");
  if ( osvi.szCSDVersion[1] == 'C' || osvi.szCSDVersion[1] == 'B' )
    printf("OSR2 " );
}
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#14

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 10:43
Zitat von MathiasSimmack:
Ich sehe gerade, dass es im PSDK so aussieht:
Mag sein, aber die Beispiele waren noch nie fehlerfrei
http://support.microsoft.com/support.../q158/2/38.asp
(mal ganz davon abgesehen, dass bei neuen Windows-Versionen komische Ergebnisse rauskommen wenn man das MSDN-Beispiel 1:1 übernimmt...)
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#15

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 10:55
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;
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#16

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 11:17
Zitat von MathiasSimmack:
Nein, in dem Fall dürfte das Problem wohl bei mir liegen.
Kommt vor...
Ich meinte eigentlich
Code:
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 " );
}
...es gibt kein 95C mit Minor 0 (auch das PSDK irrt sich manchmal (wollte ich damit sagen))
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#17

Re: auslesen der windowsversion

  Alt 23. Mär 2004, 19:05
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.....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: auslesen der windowsversion

  Alt 23. Mär 2004, 19:40
Moin glkbkk,

Zitat von glkbkk:
oder so ähnlich.
da sollte man borland ma ne mail schicken.....
oder selber so eine Funktion schreiben, wenn man sie denn braucht
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19

Re: auslesen der windowsversion

  Alt 23. Mär 2004, 20:11
Zitat von glkbkk:
oder so ähnlich.
da sollte man borland ma ne mail schicken.....
Du bist es doch der programmiert. Borland stellt nur die Werkzeuge zur Verfügung. Wenn du so willst, könnte Borland für jedes Prtogramm eine Komponenete bei legen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DaFox

Registriert seit: 31. Jul 2003
Ort: Kippenheim
90 Beiträge
 
#20

Re: auslesen der windowsversion

  Alt 23. Mär 2004, 23:15
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23:41 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