[..] Ouverture d'une liste de fichiers suivi d'actions

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
oren
Niveau 1
Niveau 1
Messages : 2
Enregistré le : sam. 21 févr. 2015 20:54
Status : Hors ligne

[..] Ouverture d'une liste de fichiers suivi d'actions

#1

Message par oren »

Bonsoir.

J'aimerais exporter des fichiers .nif en .obj via l'aide de NifSkope, plusieurs fichiers automatiquement, au lieu d'un à un manuellement, il n'y a aucun moyen de le faire via NifSkope, ni d'alternatives. C'est pour cela que je me suis dis qu'autoit pourrait le faire, cependant je n'y connais rien.

Donc ce qui faudrait faire, dans l'ordre, c'est:

- Exécuter un fichier d'un dossier
- Appuyer sur ALT, puis la touche F, ensuite trois fois la flèche bas, une fois la flèche droite et deux fois entrer.
- Ensuite, écrire le nom du fichier ouvert suivi de ".obj"
- Appuyer sur entrer
- Et fermer le processus NifSkope.exe

Et répéter l'action au prochain fichier, jusqu'à ce que tout les fichiers du dossier aient été traités.

Donc ce que j'ai fais:

Code : Tout sélectionner

#include <file.au3>

;==========================================
$extension    = ".nif"
;------------------------------------------

$path         = @ScriptDir & "\"
;==========================================

local $szDrive, $szDir, $szFName, $szExt




$FileArray = _FileListToArray( $path, "*.nif",1)
For $i = 1 To $FileArray[0]
ShellExecuteWait($path & "\" & $FileArray[$i])

Next
Mais à partir de là je suis bloqué.

Code : Tout sélectionner

Send("{ALT}")
Send("f")
Send("{DOWN}{DOWN}{DOWN}{RIGHT}{Enter}{Enter}")
Je sais qu'il faut faire ça, mais je ne sais pas comment parce que le script est en pause jusqu'à l'attente de la fin du processus du coup. Donc j'ai essayé de faire un autre script que je lance:

Code : Tout sélectionner

If ProcessExists("NifSkope.exe") Then

$title = WinGetTitle("{ACTIVE]")
Send("{ALT}")
Send("f")
Send("{DOWN}{DOWN}{DOWN}{RIGHT}{Enter}{Enter}")
Send($title & ".obj")
Send("{ENTER]")
Sleep(1000)

ProcessClose("NifSkope.exe")

EndIf
Mais ça ne marche pas du tout.

Une idée?

Merci à vous!
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Ouverture d'une liste de fichiers suivi d'actions

#2

Message par mikell »

Difficile sur quelque chose qu'on peut pas tester
En vrac :
ShellExecute sans Wait, ake sinon ça va bloquer au 1er fichier (ce que tu as déjà remarqué)
Ensuite, il faut estimer un délai et mettre un Sleep(..) ou définir une condition dans une boucle while pour que le script continue au moment qu'il faut
C'est Alt puis F, ou Alt+F ? la syntaxe est différente
Entre les Send, vaut mieux mettre un Sleep(100) parce que sinon Autoit risque d'envoyer les Send trop vite pour que le logiciel cible ait le temps de réagir

Bref... tu n'aurais pas un autre logiciel similaire mais qui fonctionnerait en ligne de commande ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
oren
Niveau 1
Niveau 1
Messages : 2
Enregistré le : sam. 21 févr. 2015 20:54
Status : Hors ligne

Re: [..] Ouverture d'une liste de fichiers suivi d'actions

#3

Message par oren »

C'est ALT et F pas ALT + F x), et non il n'y a rien d'autre, malheureusement.
Répondre