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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

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

#1

Message 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.
Modifié en dernier par keltharak le lun. 30 nov. 2009 09:51, modifié 1 fois.
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

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

#2

Message 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 @....
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#3

Message 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. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#4

Message 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...
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#5

Message par Tlem »

Certes, mais pourquoi le faire en VBS puisque AutoIt sait le faire. :P
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

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

#6

Message 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 !
gauthier
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 24 nov. 2009 15:36
Status : Hors ligne

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

#7

Message par gauthier »

keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

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

#8

Message 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.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#9

Message 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 :?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#10

Message 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+
A+
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

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

#11

Message 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 ;)
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

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

#12

Message 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...
Répondre