titre_site.jpg (51607 octets)

OS()

Commande dBase V et suivants

Renvoie le nom et le numéro de version du système d'exploitation en cours d'utilisation (voir note), ou le numéro de version de Windows.

Syntaxe
Plus2_5-Icon.jpg (1250 octets) OS()

vdb5.gif (351 octets) OS([<expN>])

<expN>

Tout nombre. OS( ) sans <expN> renvoie le nom et le numéro de version du système d'exploitation. OS(expN) renvoie la version de Windows en cours d'utilisation.

 

 dbasedos.gif (376 octets) vdb5.gif (351 octets) Description

OS( ) permet de déterminer le système d'exploitation ou la version de Windows sous lequel le programme s'exécute. Pour déterminer la version de dBASE en cours d'exécution, il faut utiliser VERSION( ).


OS( ) permet d'améliorer la portabilité d'une application de système en système. Par exemple, s'il est prévu de porter une application sur plusieurs systèmes dont certains fonctionnant avec des versions du DOS trop anciennes pour supporter certaines sections du code, l'exécution de ces sections peut être conditionnée à la valeur renvoyée par OS( ).

 

Code      dbasedos.gif (376 octets)   vdb5.gif (351 octets)   Plus2_5-Icon.jpg (1250 octets)

Dans l'exemple suivant, OS( ) est utilisée pour tester si le système d'exploitation utilisé est Windows version 3.10, ou plus. Le nombre de caractères à droite de 'version' est calculé, puis ces caractères sont séparés et convertis en un nombre. Le nombre est comparé à 3.10 :

Os=OS(1) && Renvoie "Windows version ??.??"

L=Len(Os)

* Nombre de caractères

Os=UPPER(Os)

* convertit en majuscules

Pos=AT("VERSION",Os)

* trouve 'version' dans Os

* Pos pointe sur le 'v' de 'version'

RightSide=L-Pos-6

* on obtient les # caractères après 'version'

VersionStr=Right(Os,RightSide)

VersionNum=Val(VersionStr)

* conversion en nombre

IF VersionNum<3.10

   ? "Votre système d'exploitation est ",OS( )

   ? "Votre version de Windows est ",OS(1)

WAIT ;

"Ce programme nécessite Windows version 3.10 ou plus"

ENDIF

 

bug_jpg.jpg (2635 octets)  Bien comprendre

Les noms commerciaux

OS() renvoie la version de Windows utilisée par le système sur lequel tourne l'application sous la forme d'une chaîne de caractères. Cette chaîne ne donne pas les noms commerciaux de Windows, mais est plus précise que la commande getenv("os"), permettant ainsi de connaitre la version commerciale de Windows.

Les correspondances sont les suivantes :

Windows 95    = "Windows version 4.00"

Windows 98    = "Windows version 4.10"

Windows ME    = "Windows version 4.90"

Windows NT3   = "Windows NT version 3.51"

Windows NT4   = "Windows NT version 4.00"

Windows 2000  = "Windows NT version 5.00"

Windows XP    = "Windows NT version 5.01"

Windows Vista = "Windows NT version 6.00"

Windows 7     = "Windows NT version 6.01"

 

D'autres numéros de versions de windows en cours

Au 1.8.2013 :

Operating system      Version number

Windows 8                  6.2
Windows Server 2012        6.2
Windows 7                  6.1
Windows Server 2008 R2     6.1
Windows Server 2008        6.0
Windows Vista              6.0
Windows Server 2003 R2     5.2
Windows Server 2003        5.2
Windows XP 64-Bit Edition  5.2
Windows XP                 5.1
Windows 2000               5.0

(source : http://msdn.microsoft.com/en-us/library/ms724832(VS.85).aspx )

Les anciennes versions seraient les suivantes

Windows 1.0                   1.04
Windows 2.0                   2.11
Windows 3.0                   3
Windows NT 3.1                3.10.528
Windows for Workgroups 3.11   3.11
Windows NT Workstation 3.5    3.5.807
Windows NT Workstation 3.51   3.51.1057
Windows 95                    4.0.950
Windows NT Workstation 4.0    4.0.1381
Windows 98                    4.1.1998
Windows 98 Second Edition     4.1.2222
Windows Me                    4.90.3000

(source : http://www.nextofwindows.com/a-list-of-windows-operating-system-version-number/)

Ce que renvoie effectivement OS()

Danger20x20.gif (990 octets) Attention OS () renvoie l'OS de son exécution, pas celui du système d'exploitation parent.
Donc si vous avez Vista ou Win7 et que votre programme est exécuté en mode compatibilité XP, OS() indiquera  XP comme OS.
(Newsgroup: dbase.programming Sent: Monday, March 22, 2010 6:51 PM Subject: Re: What does os(1) report for Windows Vista?)

Du fait qu'avec les versions vista, 7 et 8 des programmes fonctionnement souvent dans des modes d'émulation qui peuvent retourner un OS différent de celui installé sur la machine, le seul moyen pour connaître l'OS réellement installé est d'interroger la base de registre. La référence à l'OS se situe en :

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion"
(Source : dbase.programming Sujet : Re: strange OS version Date : Mon, 22 Apr 2013 18:51:00 -0400  Auteur : "Rich...")

 

Autres éléments

Pour obtenir la même information pour les versions de dBase, utiliser version()

Pour savoir s'il s'agit d'une configuration 64 bits, voir Tester une éventuelle configuration 64 bits

 
 

retour

Sources :

Aide Visual dbase V5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm par Ken Mayer
Aide dBase Plus 2.6.0

Retour à l'accueil


Si vous voyez des erreurs, ou souhaitez apporter des compléments, n'hésitez pas à le signaler.
Dernière modification : dimanche 11 août 2013

©  M.Abraham.