Page 2 sur 2

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 09:25
par jguinch
Est-ce que ce code ne suffirait pas ?
► Afficher le texte

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 10:32
par Lebalbo2013
Bonjour et merci encore,
En exécutant le script j'ai ce message:
"Line 2785 (File"c:\Chemin_du_script\script.exe"): Error:Unknownmacro".
Je suis entrain de chercher à comprendre où e trouve l'erreur mais pour l'instant j'ai pas trouvé.
Aurais-tu une piste?

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 11:25
par jguinch
Et avec la version non compilée ?

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 11:58
par franco
Salut.

Je pense que c'est lié à la compilation et à ceci :

Code : Tout sélectionner

$sSystemDir = ( (StringInStr(@OSArch, "64") AND NOT @AutoItX64) ? @WindowsDir & "\sysnative" : @SystemDir )
  • Mon pc est en 64 bits.
  • J'ai codé ceci :

    Code : Tout sélectionner

    $sSystemDir = ( (StringInStr(@OSArch, "64") AND NOT @AutoItX64) ? @WindowsDir & "\sysnative" : @SystemDir )
    MsgBox(0,"",$sSystemDir))
  • J'ai cliqué droit sur le script et j'ai choisi de lancer le script en X86.
  • j'ai obtenu : c:\windows\sysnative : sauf que je n'ai pas ce dossier.
  • J'ai ensuite cliqué droit sur le script et j'ai choisi de lancer le script en X64.
  • j'ai obtenu : c:\windows\system32 : et donc pas de souci.
Je pense donc que tu dois le compiler en X64.

J'ai compilé en X86 et en X64, et le résultat est le même : la version compilée en 64 bits me retourne le bon dossier.



@+

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 12:28
par jguinch
En fait j'ai fait une faute de frappe dans le Run, il faut remplacer @sSystemDir par $sSystemDir

@franco : tu n'as pas le dossier Sysnative car il n'est pas accessible depuis l'explorateur, tout simplement
C'est un dossier virtuel (sous x64) qui permet d'accéder au répertoire system32 natif (c:\windows\system32) depuis un programme 32 bits (c'est la redirection WOW64 : https://msdn.microsoft.com/fr-fr/librar ... 85%29.aspx)
Avec un script x86 :
- si tu fais Run ( @ComSpec & " /k", @SystemDir), tu te retrouves dans c:\windows\syswow64 (le répertoire system32 pour les programmes x86)
- Si tu fais Run ( @ComSpec & " /k", @WindowsDir & "\system32"), tu te retrouves également dans c:\windows\syswow64 car system32 est redirigé vers syswow64 pour les programmes 32 bits
- Si tu fais Run ( @ComSpec & " /k", @WindowsDir & "\sysnative"), tu te retrouves dans le c:\windows\system32 natif (dans le lien plus haut, c'est précisé : 32-bit applications can access the native system directory by substituting %windir%\Sysnative for %windir%\System32.)

La commande pkgmgr est disponible en version 32 et 64 bits, respectivement sous c:\windows\syswow64 et c:\windows\system32.
Ce genre de commande doit généralement s'exécuter en 64 bits, c'est pour ça que j'ai utilisé @WindowsDir & "\Sysnative" au lien de @SystemDir.

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 13:22
par franco
Salut Et surtout merci pour ces informations :)

Ca me sera utile plus tard je pense. ;)



+

Re: [..] Exécuter une ligne de commande dans un AutoIt [R]

Posté : jeu. 27 août 2015 14:03
par Lebalbo2013
Merci à tous pour votre aide!!
çà fonctionne :D :!: .@jguinch Il fallait juste corriger l'erreur que tu as détectée.
Bonne journée.

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 14:40
par jguinch
Merci de passe le sujet en [R] si le problème est résolu.

Re: [R] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 14:53
par Lebalbo2013
Désolé,
Je l'avais fait mais pas de la bonne manière.Je pense que c'est mieux maintenant.

Re: [..] Exécuter une ligne de commande dans un AutoIt

Posté : jeu. 27 août 2015 14:55
par jguinch
Il faut modifier le titre du premier message.