Page 1 sur 1
[..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 08:54
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
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.
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 09:11
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 ^^
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 09:15
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.
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 09:55
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
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 10:36
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

Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:05
par ani
bonjour laddy,
Code : Tout sélectionner
RunWait(@ComSpec & " /c " & $SunVirtualBox & " VBoxManage.exe showhdinfo " & $IniSource & " > " &$ListInfo, "", @SW_HIDE)
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:13
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)
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:30
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

Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:30
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"
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:45
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)
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:53
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éé.
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 11:57
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 & '"')
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 12:09
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
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 14:01
par Laddy
Ben je suis coincée impossible de créer mon fichier j'ai tout tenté...
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 16:25
par bloodwolff
J'ai répondu bêtement dans le mauvais post
Bon je répète ma réponse alors
bloodwolff a écrit :Tente un
, car un fileopendialog() modifie le working dir
"Path" tu peux toujours tenter avec @scriptdir si le script fonctionne sans utiliser fileopendialog
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 16:30
par Laddy
Merci pour l'astuce. Pour le moment je ne vois pas comment l'inclure
je regarde demain
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : mer. 15 déc. 2010 16:31
par bloodwolff
Tu le met n'importe où entre le fileopendialog et le runwait

Re: [..] FileOpenDialog, RunWait et IniRead
Posté : jeu. 16 déc. 2010 11:52
par Laddy
Bonjour bloodwolff
Félicitations pour ton changement de couleur

l'orange te va bien
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 & '"')
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : jeu. 16 déc. 2010 14:32
par bloodwolff
Re: [..] FileOpenDialog, RunWait et IniRead
Posté : jeu. 16 déc. 2010 14:51
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)