Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

automne

Devenez BetaTesteur pour Automne

Messages recommandés

Voilà, je suis en train de me mettre tranquillement au WSH et je viens de créer un petit prog qui donne la version de Windows et verifie si le bureau IE4+ est installé.

 

Le problème, c'est que je n'ai qu'un 98 1ere édition et un WinXP pour tester. Alors si certains ont 5 minutes, il suffit de copier le code suivant dans un fichier sysinfo.js, de l'enregistrer et de double-cliquer dessus pour le lancer.

Et vous ecrivez à la suite le texte qui s'affiche dans la boite de dialogue.

 


// Indique si la mise à jour du bureau a été effectuée

function OSinfo_method_GetWDU()

{

var oSysFldr, sSysPath, sFileVer, arVerNums;

 

var csSystemFolder = 1;

var csShell = "shell32.dll";



oSysFldr = this.oFSO.GetSpecialFolder (csSystemFolder);

sSysPath = oSysFldr.Path;

sFileVer = this.oFSO.GetFileVersion(this.oFSO.BuildPath (sSysPath,csShell));

arVerNums = sFileVer.split(".");



if ( (Number(arVerNums[0]) > 4) || ((new Number(arVerNums[0]) == 4) && (new Number(arVerNums[1]) >= 71)) )

 return true;

else

 return false;

}





var OS_UNKNOWN  	= 0;

var OS_UNKNOWN_WIN9X	= 1;

var OS_UNKNOWN_NT  = 2;

var OS_WIN95A    = 3;

var OS_WIN95B    = 4;

var OS_WIN98    = 5;

var OS_WIN98SE    = 6;

var OS_WINNT4_SRV_DC	= 10;

var OS_WINNT4_SRV  = 11;

var OS_WINNT4_WRK  = 12;

var OS_WINNT4    = 13;

var OS_WIN2K    = 15;

var OS_WINXP    = 20;



// Renvoie le type d'OS

function OSinfo_method_GetOSstring(nOS)

{

switch (nOS)

{

 case OS_UNKNOWN : return "Unknown";

 case OS_UNKNOWN_WIN9X : return "Unknown Win9X";

 case OS_UNKNOWN_NT : return "Unknown NT";

 case OS_WIN95A : return "Win95A";

 case OS_WIN95B : return "Win95B";

 case OS_WIN98 : return "Win98";

 case OS_WIN98SE : return "Win98SE";

 case OS_WINNT4_SRV_DC : return "WinNT4-Srvr-DC";

 case OS_WINNT4_SRV : return "WinNT4-Srvr";

 case OS_WINNT4_WRK : return "WinNT4-Wrkstat";

 case OS_WINNT4 : return "WinNT4";

 case OS_WIN2K : return "Win2k";

 case OS_WINXP : return "WinXP";

}

}



function OSinfo_method_GetOS()

{

var sModule;

sModule = "GetOS";



var sOStype, sOSversion;



try {

 sOStype = this.oShell.RegRead("HKLMSYSTEMCurrentControlSetControlProductOptionsProductType");

} catch (err) {

 try {

 	sOStype = this.oShell.RegRead("HKLMSOFTWAREMicrosoftWindowsCurrentVersionVersionNumber");

 } catch (err) {

 	return OS_UNKNOWN_WIN9X;

 }	

}



if ((sOStype == "LanmanNT") || (sOStype == "ServerNT") || (sOStype == "WinNT"))

{

 try {

 	sOSversion = this.oShell.RegRead("HKLMSOFTWAREMicrosoftWindows NTCurrentVersionCurrentVersion");

 } catch (err) {

 	return OS_UNKNOWN_NT;

 }

}



switch (sOSversion)

{

 case "4.0" :

 	switch (sOStype)

 	{

   case "LanmanNT" : sOStype = OS_WINNT4_SRV_DC; break;

   case "ServerNT" : sOStype = OS_WINNT4_SRV; break;

   case "WinNT" : sOStype = OS_WINNT4_WRK; break;

   default : sOStype = OS_WINNT4; break;

 	}

 	break;

 	

 case "5.0" : sOStype = OS_WIN2K; break;



 case "5.1" : sOStype = OS_WINXP; break;



 default :

 	switch (sOStype)

 	{

   case "4.00.950" : sOStype = OS_WIN95A; break;

   case "4.00.1111" : sOStype = OS_WIN95B; break;

   case "4.03.1214" : sOStype = OS_WIN95B; break;

   case "4.10.1998" : sOStype = OS_WIN98; break;

   case "4.10.2222" : sOStype = OS_WIN98SE; break;

   default : sOStype = OS_UNKNOWN; break;

 	}

}



return sOStype;

}



function OSinfo()

{

this.GetOS = OSinfo_method_GetOS;

this.GetOSstring = OSinfo_method_GetOSstring;

this.GetWDU = OSinfo_method_GetWDU;



this.oFSO = new ActiveXObject("Scripting.FileSystemObject");

this.oShell = new ActiveXObject("Wscript.Shell");

 

}



var OS = new OSinfo();



WScript.Echo("System : " + OS.GetOSstring(OS.GetOS()) + "nWDU : " + OS.GetWDU());

 

Merci à ceux qui voudront bien tester. Ce code au pire ne fonctionnera pas mais ne peut en aucun cas poser des problemes. Il se contente de lire des clés de la BDR et la version d'une DLL.

 

Automne

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu fasi pas la différence entre les différent win2k ?

 

Je vais me pencher sur le problème dés que je saurais comment différencier des différentes versions.

On remarquera que Microsoft ne fournit aucun objet permettant de savoir sur quel OS on se trouve. Ce serait bien pratique vu que l'architecture de la BDR est un peu différente entre les différents OS ....

 

En fait, je suis en train de faire un outils qui permet de faire différents réglages et optimisations automatiquement. Avec une belle interface HTML car on peut scripter IE :P

 

Automne

Partager ce message


Lien à poster
Partager sur d’autres sites
On remarquera que Microsoft ne fournit aucun objet permettant de savoir sur quel OS on se trouve

 

ben clic droit sur poste de travail => propriété et y a marqué l'OS, si c'est bien ce dont tu parles

Partager ce message


Lien à poster
Partager sur d’autres sites
On remarquera que Microsoft ne fournit aucun objet permettant de savoir sur quel OS on se trouve

 

ben clic droit sur poste de travail => propriété et y a marqué l'OS, si c'est bien ce dont tu parles

 

Il voulait dire "accéder avec un script à la version de windows par l'intermédiaire d'un objet programmé par MS"

 

 

Ta méthode est très bien mais elle n'est pas programmable :P

Partager ce message


Lien à poster
Partager sur d’autres sites
ben clic droit sur poste de travail => propriété et y a marqué l'OS, si c'est bien ce dont tu parles

 

En fait, ce que je veux c'est automatiser dans une appli que je developpe la détection du type de windows. Pour voir la version à la mano je sais comment faire, mais pour le faire un programmation, c'est déjà moins evident. Sinon, y a bien l'utilisation de WMI mais ca ne fonctionne que sur certaines machines.

 

Dernier moyen, utiliser les API Windoz pour aller chercher l'info dans les DLLs mais là je manque encore de connaissances en JScript pour le faire (si c'est possible ....)

 

Automne

Partager ce message


Lien à poster
Partager sur d’autres sites
Je confirme : pas d'API avec JScript et tout WSH :P

 

(c'est quoi WMI ?)

 

Heu si j'ai vu qu'on peut le faire en VBScript mais j'ai pas encore trouvé comment en JScript. Par contre, j'ai pas retrouvé le lien ou j'ai vu ca :-(

 

Sinon pour WMI, vas là, y a une explication :

http://www.winscripter.com/wsh/wmi/a_overview.asp

 

Automne

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×