Page 1 sur 1

[C] Variables autoIT @.. : où les trouver dans Windows

Posté : mer. 25 nov. 2009 16:55
par keltharak
Bonjour,

En autoIT, il existe des variables fort pratiques comme @OSArch et @OSVersion.
Mon problème maintenant c'est que je dois développer un bout de script en VBS pour déterminer si un PC et sous Windows XP 32 bits en anglais. Et j'aimerais savoir si ces variables autoIT sont calculé ou bien si elle sont connu quelque part dans Windows, ce qui me permettrait de les lire et de m'en servir !

J'ai déjà une solution alternative en cherchant des répertoires propres au 64 bit puis un spécial folder comme le bureau pour vérifier la langue, mais c'est quand même beaucoup moins propre à mon sens.

Merci d'avance.

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : mer. 25 nov. 2009 19:41
par ayuckers
bonsoir,

Va dans le fichier d'aide " AutoIt3Help " sur l'onglet index et tu fait une recherche sur
"Directory Macros" et ensuite sur " Macros "
tu devrais y trouvé toute les variable en @....

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : mer. 25 nov. 2009 21:24
par Tlem
Pour le type d'OS (32 ou 64-Bit), vous pouvez utiliser ceci :

Code : Tout sélectionner

Func _OSBit2()
    Local $tOS = DllStructCreate("char[256]")
    Local $aGSWD = DllCall("Kernel32.dll", "int", "GetSystemWow64Directory", "ptr", DllStructGetPtr($tOS), "int", 256)
    If IsArray($aGSWD) And DllStructGetData($tOS, 1) Then Return 64
    Return 32
EndFunc
Pour le reste, les macros devrait suffire. ;)

Re: [..] Variables AutoIt @.. : où les trouver dan

Posté : mer. 25 nov. 2009 22:55
par jbnh
Mhhh, je crois pas que ces deux réponses répondent à la question.

Je pense que keltharak veut savoir ou va chercher la macro autoit @OSVersion son information pour l'utiliser en vbs...

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : mer. 25 nov. 2009 23:10
par Tlem
Certes, mais pourquoi le faire en VBS puisque AutoIt sait le faire. :P

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : jeu. 26 nov. 2009 09:27
par keltharak
Bonjour,
merci de vous intéresser a mon problème déjà, mais jbnh a raison, je souhaite savoir ou autoIT trouve ces info car je dois forcement le faire en VBS.
Croyez moi ça m'ennuie encore plus que vous car je vais devoir le codé mais bon pas le choix !

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : jeu. 26 nov. 2009 09:30
par gauthier

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : jeu. 26 nov. 2009 09:44
par keltharak
Merci gauthier mais ce n'est pas ça que je cherche, je connais parfaitement ces macros ! Et justement j'aurais adoré que ce soit les même en VBS mais elle n'existent pas !

Ce que je voudrais savoir c'est comment autoIT renseigne ces macros.

Exemple, @OSArch sur ma machine au bureau renvoie "X86". Mais pour avoir cette information, le moteur autoIT doit bien la chercher quelque part ! Je vois que 2 solutions, soit une clé de registre une une variable windows (ou autre) contient cette info (franchement ça m'arrangerait :) ) soit il la calcule avec des propriétés particulières de windows.

Re: [..] Variables AutoIt @.. : où les trouver dan

Posté : jeu. 26 nov. 2009 10:02
par jbnh
Salut.

Bon bah voila tes deux solutions : Soit tu sais comment chercher en vbs une information dans la base de donnée, et à ce moment la tu regardes dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion "buildlabex"

Ou alors tu cherches du coté des Windows API ou il doit surement y avoir une fonction toute faite :?

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : dim. 29 nov. 2009 20:49
par moutelous
Bonjour,

Il faut utiliser l'objet WshEnvironment avec un code de ce genre :

Code : Tout sélectionner

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("System")
WScript.Echo objEnv("OS") 
 
Ci-dessous les variables concernées :

NUMBER_OF_PROCESSORS Number of processors running on the machine.
PROCESSOR_ARCHITECTURE Processor type of the user's workstation.
PROCESSOR_IDENTIFIER Processor ID of the user's workstation.
PROCESSOR_LEVEL Processor level of the user's workstation.
PROCESSOR_VERSION Processor version of the user's workstation.
OS Operating system on the user's workstation.
COMSPEC Executable file for the command prompt (typically cmd.exe).
HOMEDRIVE Primary local drive (typically the C drive).
HOMEPATH Default directory for users (Typically \users\default in Windows 2000).
PATH PATH environment variable.
PATHEXT Extensions for executable files (typically .com, .exe, .bat, or .cmd).
PROMPT Command prompt (typically $P$G). X
SYSTEMROOT System directory (for example, c:\winnt). This is the same as WINDIR.
WINDIR System directory (for example, c:\winnt). This is the same as SYSTEMROOT.
TEMP Directory for storing temporary files (for example, c:\temp).
TMP Directory for storing temporary files (for example, c:\temp).

A+

Re: [..] Variables AutoIt @.. : où les trouver dans Windows

Posté : dim. 29 nov. 2009 21:02
par ayuckers
bonsoir, je n'est pas eut le temps de regarder le code mais est que ceci pourais répondre a tes question.
avec un peut de chance y'a quelque chose a en tiré
mais je me trompe peut etre

voici le lien :
http://www.autoitscript.com/forum/index ... howfile=16


edit : bin en fait non je vient de regarder le code sorry ;)

Re: [..] Variables autoIT @.. : où les trouver dans Windows

Posté : lun. 30 nov. 2009 09:48
par keltharak
Merci a tous pour vos pistes, mais au final j'ai rien trouvé de vraiment efficace.

Je cherchais comment autoiT détermine les variables @OSArch et @OSversion pour réutiliser cette méthode dans un script VBS (car je complète un script existant et que je n'ai pas le choix du langage...). au final ces la solution de jbnh qui se rapprochait le plus de ce que je cherchais mais malheureusement la clé de registre "buildlabex" n'existe pas sur les version d'XP de ma boite. Finalement je me suis rabattu sur la recherche du répertoire "SysWoW64" pour le type d'architecture et sur l'analyse du nom de l'OS fourni par une requête WMI pour être sur que ce soit XP.

Au final : longue vie a autoIT ! c'est mieux...