[..] FileOpenDialog, RunWait et IniRead

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

[..] FileOpenDialog, RunWait et IniRead

#1

Message par Laddy »

Bonjour à tous

désolé de venir vous embêter avec un problème bête mais je n'arrive pas à trouver de solution.
J'essaie d'exécuter la commande RunWait en extractant l'information d'un fichier ini. Mais impossible de le faire fonctionner.
Rien ne se passe pourquoi ?
Si je n'utilise un script basique ça fonctionne pourtant...

Si je retire FileOpenDialog j'arrive à faire fonctionné le RunWait mais impossible avec FileOpenDialog ? Pourquoi ?
mes chemins sont bons apparemment.


Code FileOpenDialog :

Code : Tout sélectionner

Global $SunVirtualBox = RegRead("HKEY_LOCAL_MACHINE\Software\Sun\VirtualBox", "InstallDir") ;lecture chemin dans la BDR
Local $ListInfo = "InfoSourceVDI.txt" ; fichier stockage info de la commande
Local $message = "Selectionne la source de ton fichier VDI." ; F:\xppro.vdi
Local $var = FileOpenDialog($message, @DesktopDir & "\", "Fichiers VirtualBox (*.vdi)", 1)
IniWrite( @DesktopDir &"\CloneVDIinfo.ini","parametres","Source",$var)
Sleep(5000) 
$IniSource = IniRead(@ScriptDir &"\CloneVDIinfo.ini", "Parametres", "Source", "NotFound")
RunWait(@ComSpec & " /c """ &$SunVirtualBox&"VBoxManage.exe""" &" showhdinfo """ &$IniSource &""" > " &$ListInfo, "", @SW_HIDE)
msgbox(0,"Alors?",@ComSpec & " /c """ &$SunVirtualBox&"VBoxManage.exe""" &" showhdinfo """ &$IniSource &""" > " &$ListInfo)
 
Sans FileOpenDialog

Code : Tout sélectionner

Local $ListInfo = "InfoSourceVDI.txt"
;Local $var = "F:\xngdows.vdi"
Global $SunVirtualBox = RegRead("HKEY_LOCAL_MACHINE\Software\Sun\VirtualBox", "InstallDir")
$IniSource = IniRead(@ScriptDir &"\CloneVDIinfo.ini", "Parametres", "Source", "NotFound")
msgbox(0,"Alors ?",@ComSpec & " /c """ &$SunVirtualBox&"VBoxManage.exe""" &"showhdinfo " &$var &" > " &$ListInfo)
RunWait(@ComSpec & " /c """ &$SunVirtualBox&"VBoxManage.exe""" &" showhdinfo " &$IniSource &" > " &$ListInfo, "", @SW_HIDE)
 
ini

Code : Tout sélectionner

[parametres]
Source=F:\xppro.vdi
 
Image

En autohotkey il y a une fonction pour dire au script de travailler dans son répertoire, y a t il un équivalent en autoit ?
SetWorkingDir %A_ScriptDir%

Merci aux membres qui me répondront.
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#2

Message par pop45 »

Juste par curiositer, mais dans ces linges:

Code : Tout sélectionner

IniWrite( @DesktopDir &"\CloneVDIinfo.ini","parametres","Source",$var)
Sleep(5000)
$IniSource = IniRead(@ScriptDir &"\CloneVDIinfo.ini", "Parametres", "Source", "NotFound")
 
avec le iniread vous cherchez a lire se que vous avez ecrit avec l'iniread?Si c'est le cas, faites attention les nom de section ou de valeurs sont sensible au majuscules!
Sinon pourquoi utiliser @desktopDir dans l'un, et @scriptDir dans l'autre?

Ha et dans la comandes RunWait j'ai aussi vue plein de guillement qui ne servent a rien, si ils sont necessaire au fonctionnement du scripte, entourez les avec des apostrophes, comme ceci!

Code : Tout sélectionner

RunWait(@ComSpec & ' /c "' &$SunVirtualBox&'VBoxManage.exe"' &" showhdinfo " &$IniSource &" > " &$ListInfo, "", @SW_HIDE)
En espérant vous avoir aider ^^
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#3

Message par Laddy »

Bonjour pop45

j'ai tout tenté pour trouver l'erreur j'ai oublié de remettre @DesktopDir ou @ScriptDir dans l'une ou l'autre ligne.


J'ai modifié mon code en corrigeant la casse, et @ScriptDir

Code : Tout sélectionner

IniWrite( @ScriptDir &"\CloneVDIinfo.ini","parametres","Source",$var)
Sleep(5000)
$IniSource = IniRead(@ScriptDir &"\CloneVDIinfo.ini", "parametres", "Source", "NotFound")
mais ça ne fonctionne toujours pas avec FileOpenDialog... :(

Je ne comprends pas où ça bloque je n'ai aucun retour d'erreurs.
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#4

Message par Laddy »

J'ai trouvé le fichier txt à l'endroit du FileOpenBox mais il est vide.

Si j'ajoute @ScriptDir. je n'oublie plus rien, pas de fichier txt sur le bureau ni dans l'emplacement du fileOpenBox.

Code : Tout sélectionner

Local $ListInfo =  @ScriptDir &"\InfoSourceVDI.txt"

RunWait(@ComSpec & " /c """ &$SunVirtualBox&"VBoxManage.exe""" &" showhdinfo """ &$IniSource &""" > " &$ListInfo, "", @SW_HIDE)
Je viens de voir votre Edit :

Votre syntaxe me crée un fichier documents à la racine du C:\

Code : Tout sélectionner

RunWait(@ComSpec & ' /c "' &$SunVirtualBox&'VBoxManage.exe"' &" showhdinfo " &$IniSource &" > " &$ListInfo, "", @SW_HIDE)
 
Ce qui montre je pense que cmd n'a pris en compte correctement la syntaxe entre guillements à cause des dossiers noms composés.
C:\documents and settings par déduction
mon fichier de sortie apparamment

comment faire pour l'ajouter des guillements sur cette variable : &$ListInfo
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#5

Message par Laddy »

j'ai testé :

Code : Tout sélectionner

RunWait(@ComSpec & ' /c "' &$SunVirtualBox&'VBoxManage.exe"' &" showhdinfo " &$IniSource &" > """ &$ListInfo """, "", @SW_HIDE)
J'ai une erreur de syntaxe ce n'est pas facile de gérer les guillemets :(
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#6

Message par ani »

bonjour laddy,

Code : Tout sélectionner

RunWait(@ComSpec & " /c " & $SunVirtualBox & " VBoxManage.exe showhdinfo " & $IniSource & " > " &$ListInfo, "", @SW_HIDE)
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#7

Message par Laddy »

ça ne fonctionne pas. Il manque les guillements sur les chemins.

J'en suis ici grâce à pop45 mais il me manque les guillements sur ma variable $ListInfo

Code : Tout sélectionner

RunWait(@ComSpec & ' /c "' &$SunVirtualBox&'VBoxManage.exe"' &" showhdinfo " &$IniSource &" > " &$ListInfo, "", @SW_HIDE)
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#8

Message par ani »

Quelle est la syntaxe exacte de la commande que vous voudriez exécuter ?

SInon, ce qui est en rouge c'est le rajout.

Code : Tout sélectionner

RunWait(@ComSpec & " /c " & $SunVirtualBox & "VBoxManage.exe showhdinfo " & $IniSource & " > [color=#FF0000]'[/color]" & $ListInfo & [color=#FF0000]"'"[/color], "", @SW_HIDE)
Au cas ou vous voudriez ajouter des quotes à toutes vos variables alors,

Code : Tout sélectionner

RunWait(@ComSpec & " /c [color=#FF0000]'[/color]" & $SunVirtualBox & "[color=#FF0000]'[/color]VBoxManage.exe showhdinfo [color=#FF0000]'[/color]" & $IniSource & "[color=#FF0000]'[/color] > [color=#FF0000]'[/color]" & $ListInfo & [color=#FF0000]"'"[/color], "", @SW_HIDE)
voilàvoilà, bonne continuation ;)
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#9

Message par Laddy »

La syntaxe exacte est en clair : il faut les guillements avec CMD sinon il prend pas les noms composés des fichiers.
Merci pour ton aide Ani.
C:\Windows\System32\cmd /c "C:\Program Files\Sun\VirtualBox\VboxManage.exe" showhdinfo "F:\xp.vdi" > "C:\Document and settings\Laddy\Bureau\InfoSourceVDI.txt"
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#10

Message par ani »

ok :)

cette variables $SunVirtualBox vous retourne bien C:\Program Files\Sun\VirtualBox\ ? avec le slash (\)?

dernière tentative ^^' , Simple quote '

Code : Tout sélectionner

RunWait(@ComSpec & " /c [color=#FF0000]'[/color]" & $SunVirtualBox & "VBoxManage.exe[color=#FF0000]'[/color] showhdinfo [color=#FF0000]'[/color]" & $IniSource & "[color=#FF0000]'[/color] > [color=#FF0000]'[/color]" & $ListInfo & "[color=#FF0000]'[/color]", "", @SW_HIDE)
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#11

Message par Laddy »

Oui j'ai bien slash retrourné par cette variable $SunVirtualBox

Pourquoi de simples guillements ? il faudrait des doubles logiquement comme en batch.

ça ne fonctionne pas le fichier n'est pas créé.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#12

Message par ani »

Double quote "

Code : Tout sélectionner

RunWait(@ComSpec & ' /c [color=#FF0000]"[/color]' & $SunVirtualBox & 'VBoxManage.exe[color=#FF0000]"[/color] showhdinfo [color=#FF0000]"[/color]' & $IniSource & '[color=#FF0000]"[/color] > [color=#FF0000]"[/color]' & $ListInfo & '[color=#FF0000]"[/color]',"",@SW_HIDE)

pour ma part quand je lance une commande de ce style j'utilise consolewrite pour bien vérifier la syntaxe comme ci-dessous.

Code : Tout sélectionner

ConsoleWrite(@ComSpec & ' /c "' & $SunVirtualBox & 'VBoxManage.exe" showhdinfo "' & $IniSource & '" > "' & $ListInfo & '"')
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#13

Message par Laddy »

Ah je ne comprend pas la syntaxe est bonne maintenant mais toujours pas de fichier txt créé
J'utilisais une msgbox pour vérifier la syntaxe

C:\WINDOWS\system32\cmd.exe /c "C:\Program Files\Sun\VirtualBox\VBoxManage.exe" showhdinfo "F:\xppro.vdi" > "C:\Documents and Settings\Laddy\Bureau\InfoSourceVDI.txt"+>12:07:26 AutoIT3.exe ended.rc:0

Je crois que fileopendialog bloque le fichier ou je sais pas
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#14

Message par Laddy »

Ben je suis coincée impossible de créer mon fichier j'ai tout tenté...
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#15

Message par bloodwolff »

J'ai répondu bêtement dans le mauvais post :oops:
Bon je répète ma réponse alors
bloodwolff a écrit :Tente un

Code : Tout sélectionner

FileChangeDir ( "path" )
, car un fileopendialog() modifie le working dir
"Path" tu peux toujours tenter avec @scriptdir si le script fonctionne sans utiliser fileopendialog
Compte skype : bloodwolfff
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#16

Message par Laddy »

Merci pour l'astuce. Pour le moment je ne vois pas comment l'inclure
je regarde demain
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#17

Message par bloodwolff »

Tu le met n'importe où entre le fileopendialog et le runwait :wink:
Compte skype : bloodwolfff
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#18

Message par Laddy »

Bonjour bloodwolff
Félicitations pour ton changement de couleur :D l'orange te va bien :D

J'ai ajouté ceci
FileChangeDir (@DesktopDir)
Dans mon code, mais pareil ça ne fonctionne pas.
Aucn fichier créé

Code : Tout sélectionner

Global $SunVirtualBox = RegRead("HKEY_LOCAL_MACHINE\Software\Sun\VirtualBox", "InstallDir")
Local $ListInfo = @DesktopDir &"\InfoSourceVDI.txt"
Local $message = "Selectionne la source de ton fichier VDI."
Local $var = FileOpenDialog($message, @DesktopDir & "\", "Fichiers VirtualBox (*.vdi)", 1)
IniWrite( @ScriptDir &"\CloneVDIinfo.ini","parametres","Source",$var)
$IniSource = IniRead(@ScriptDir &"\CloneVDIinfo.ini", "parametres", "Source", "NotFound")
FileChangeDir (@DesktopDir)
RunWait(@ComSpec & ' /c "' & $SunVirtualBox & 'VBoxManage.exe" showhdinfo "' & $IniSource & '" > "' & $ListInfo & '"',"",@SW_HIDE)
ConsoleWrite(@ComSpec & ' /c "' & $SunVirtualBox & 'VBoxManage.exe" showhdinfo "' & $IniSource & '" > "' & $ListInfo & '"')
 
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#19

Message par bloodwolff »

tu as tenté ?

Code : Tout sélectionner

FileChangeDir (@Scriptdir)
Compte skype : bloodwolfff
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] FileOpenDialog, RunWait et IniRead

#20

Message par Laddy »

Ah apparemment c'est bon en modifiant mon RunWait comme ceci, le seul problème est que si je vais dans un dossier composé ma syntaxe est fausse à cause de $IniSource, il faut que je mettes surement des doubles guillements
Quelle prise de tête..

Code : Tout sélectionner

FileChangeDir (@Scriptdir)
RunWait(@ComSpec & ' /c "' &$SunVirtualBox&'VBoxManage.exe"' &" showhdinfo " &$IniSource &" > " &$ListInfo, "", @SW_HIDE)
Répondre