[R] Déplacer un ou des fichiers sur un executable
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Déplacer un ou des fichiers sur un executable
Bonjour à tous,
j'ai une petite question :
En batch nous pouvons glisser un ou des fichiers sur un exécutable compilé, grâce à %1 qui lance l'action demandé exemple déplacer des fichiers.
Peut on faire la même chose en autoit ?
Je glisses (drop and drag) mes fichiers sur l'exécutable, et exécute l'action choisi sans l'ouvrir ?
Merci
Bonne fête de Noël à tous
Laddy
j'ai une petite question :
En batch nous pouvons glisser un ou des fichiers sur un exécutable compilé, grâce à %1 qui lance l'action demandé exemple déplacer des fichiers.
Peut on faire la même chose en autoit ?
Je glisses (drop and drag) mes fichiers sur l'exécutable, et exécute l'action choisi sans l'ouvrir ?
Merci
Bonne fête de Noël à tous
Laddy
Modifié en dernier par Laddy le ven. 24 déc. 2010 10:59, modifié 1 fois.
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Déplacer un ou des fichiers sur un executable
Bonjour,
Ben, sachant que "$CmdLine[1]" remplace les variables du type "%1", oui ......
Ben, sachant que "$CmdLine[1]" remplace les variables du type "%1", oui ......
A+
Re: [..] Déplacer un ou des fichiers sur un executable
Bonjour moutelous,moutelous a écrit :Bonjour,
Ben, sachant que "$CmdLine[1]" remplace les variables du type "%1", oui ......
$cmdLine j'ai regardé cette commande, et si j'ai bien compris elle permet de mettre un paramètre sur un executable.
"chemin\fichier.exe" /param par exemple que l'on peut taper dans démarrer -> executer
mais pour le drop and drag je ne vois pas comment faire, aurais tu un exemple ?
Genre je glisse un txt sur mon exe et il est déplacé dans Mes documents.
- FernandG
- Membre émérite
- Messages : 194
- Enregistré le : mar. 15 avr. 2008 21:50
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Déplacer un ou des fichiers sur un executable
Bonjour,
Moutelous vous donnait la solution pourtant
Neanmoins, voici en exemple concret :Compilez le et procèdez à un "drop & drag" de un ou plusieurs fichiers sur le fichier compilé.
Je pense que vous comprendrez mieux le fonctionnement
Bonne journée.
AutoItement.
Moutelous vous donnait la solution pourtant

Neanmoins, voici en exemple concret :
Code : Tout sélectionner
Dim $parametre
If $CmdLine[0] Then
For $i = 1 To $CmdLine[0]
$parametre &= $i & " : " & $CmdLine[$i] & @CRLF
Next
MsgBox(64, "Information", "Nombre(s) de paramètre(s) : " & $CmdLine[0] & @CRLF & @CRLF & $parametre)
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit
Je pense que vous comprendrez mieux le fonctionnement

Bonne journée.
AutoItement.
Modifié en dernier par FernandG le ven. 24 déc. 2010 10:53, modifié 1 fois.
- FernandG
- Membre émérite
- Messages : 194
- Enregistré le : mar. 15 avr. 2008 21:50
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Déplacer un ou des fichiers sur un executable
Pour répondre à votre demande :Laddy a écrit :moutelous a écrit :mais pour le drop and drag je ne vois pas comment faire, aurais tu un exemple ?
Genre je glisse un txt sur mon exe et il est déplacé dans Mes documents.
Code : Tout sélectionner
If $CmdLine[0] = 1 Then
If StringRight($CmdLine[1], 4) = ".txt" Then
FileCopy($CmdLine[1], @MyDocumentsDir, 1)
Else
MsgBox(16, "Information", "Erreur : " & $CmdLine[1] & " n'est pas un fichier "".txt"" !!!")
EndIf
EndIf
Exit
Re: [R] Déplacer un ou des fichiers sur un executable
Merci FernandG
c'est exactement ce que je voulais. Un exemple concret.
Bonnes fêtes de fin d'année
c'est exactement ce que je voulais. Un exemple concret.
Bonnes fêtes de fin d'année
Re: [R] Déplacer un ou des fichiers sur un executable
Re,
Pourquoi me prend t il que le dernier fichier copié ?
Quel est mon erreur ?
Pour chaque paramètre copié le fichier ou les fichiers vers Mes documents
J'ai testé ceci aussi
ça ne fonctionne plus
Pourquoi me prend t il que le dernier fichier copié ?
Code : Tout sélectionner
If $CmdLine[0] Then
If StringRight($CmdLine[1], 4) = ".txt" Then
For $i = 1 To $CmdLine[1]
FileCopy($CmdLine[1], @MyDocumentsDir, 1)
Next
EndIf
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit
Pour chaque paramètre copié le fichier ou les fichiers vers Mes documents
J'ai testé ceci aussi
Code : Tout sélectionner
If $CmdLine[0] Then
If StringRight($CmdLine[1], 4) = ".txt" Then
For $i = 1 To $CmdLine[1]
FileCopy($CmdLine[$i], @MyDocumentsDir, 1)
Next
EndIf
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit
- zeshrek
- Niveau 10
- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
3eme ligne, remplace
For $i = 1 To $CmdLine[1]
par
For $i = 1 To $CmdLine[0]
$CmdLine[1] est le 1er parametre de la ligne de commande, par contre si tu veux avoir le nombre de parametre passés (et donc les copier dans le cas de ton script) la boucle d'oit s'appuier sur le nombre de parametres passés, qui lui est stocké dans $CmdLine[0]
Edit : Attention, le if de la 2eme ligne ne rendra la copie possible que si le premier parametre passé est un fichier .txt
Donc comme je présume que tu veux copier tous les fichiers .txt dans ton rémertorie de documents, le script devrait donc etre :
For $i = 1 To $CmdLine[1]
par
For $i = 1 To $CmdLine[0]
$CmdLine[1] est le 1er parametre de la ligne de commande, par contre si tu veux avoir le nombre de parametre passés (et donc les copier dans le cas de ton script) la boucle d'oit s'appuier sur le nombre de parametres passés, qui lui est stocké dans $CmdLine[0]
Edit : Attention, le if de la 2eme ligne ne rendra la copie possible que si le premier parametre passé est un fichier .txt
Donc comme je présume que tu veux copier tous les fichiers .txt dans ton rémertorie de documents, le script devrait donc etre :
Code : Tout sélectionner
If $CmdLine[0] Then
For $i = 1 To $CmdLine[0]
If StringRight($CmdLine[$i], 4) = ".txt" Then
FileCopy($CmdLine[$i], @MyDocumentsDir, 1)
EndIf
Next
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit
Si vis pacem para bellum
Re: [R] Déplacer un ou des fichiers sur un executable
Bonjour Zeshrek force Orange,
J'ai testé sur les 2codes postés.
Le 1er : toujours qu'un fichier
le second : aucun fichier
J'ai testé sur les 2codes postés.
Le 1er : toujours qu'un fichier
le second : aucun fichier
- zeshrek
- Niveau 10
- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
Et celui que je te met dans l'edit de ma réponse (j'étais en train de le poster quand tu as répondu)
Si vis pacem para bellum
Re: [R] Déplacer un ou des fichiers sur un executable
Arf j'y étais presque effectivement mon for était mal placé.
- zeshrek
- Niveau 10
- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
Classique erreur de débutant 

Si vis pacem para bellum
Re: [R] Déplacer un ou des fichiers sur un executable
Oui, je vais compliquer la chose en créer des dossiers avant et déplacer d'autres fichiers ça promet...
Merci pour ta patience et tes explications.
Merci pour ta patience et tes explications.
Re: [R] Déplacer un ou des fichiers sur un executable
Je suis vraiment une bille mais pourquoi ceci ne fonctionne pas
Si le paramètre à pour extension txt ou ini ou etc.... alors copier le fichier dans mes documents.
Je pense traduire mon français correctement en autoit cependant il me prend uniquement le second paramètre ini.
peut etre un problème de méthode
Merci d'avance à celui qui me répondra, vous m'aider beaucoup à progresser
Si le paramètre à pour extension txt ou ini ou etc.... alors copier le fichier dans mes documents.
Je pense traduire mon français correctement en autoit cependant il me prend uniquement le second paramètre ini.
Code : Tout sélectionner
If $CmdLine[0] Then
For $i = 1 To $CmdLine[0]
If StringRight($CmdLine[$i], 4) = ".txt" OR ".ini" Then
FileCopy($CmdLine[$i], @MyDocumentsDir &"\TXT", 1)
EndIf
Next
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit
Merci d'avance à celui qui me répondra, vous m'aider beaucoup à progresser
- zeshrek
- Niveau 10
- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
Normal, il y a une faute ligne 3
Ton if commence par évaluer si StringRight($CmdLine[$i], 4) = ".txt"
mettons que c'est effectivement un fichier txt, donc le résultat est true
ensuite il fait évalue true OR ".ini"
là ca veut rien dire donc résultat false, donc il passe au endif.
Tu pourrais faire :
If StringRight($CmdLine[$i], 4) = ".txt" OR StringRight($CmdLine[$i], 4) = ".ini" then
Mais alors bonjour si tu dois tester une demie douzaine d'extensions différentes, ta ligne serait vite incompréhensible.
Du coup il vaut mieux passer par un Swithc :
Ton if commence par évaluer si StringRight($CmdLine[$i], 4) = ".txt"
mettons que c'est effectivement un fichier txt, donc le résultat est true
ensuite il fait évalue true OR ".ini"
là ca veut rien dire donc résultat false, donc il passe au endif.
Tu pourrais faire :
If StringRight($CmdLine[$i], 4) = ".txt" OR StringRight($CmdLine[$i], 4) = ".ini" then
Mais alors bonjour si tu dois tester une demie douzaine d'extensions différentes, ta ligne serait vite incompréhensible.
Du coup il vaut mieux passer par un Swithc :
Code : Tout sélectionner
If $CmdLine[0] Then
For $i = 1 To $CmdLine[0]
$extension = StringLower(StringRight($CmdLine[$i], 4)) ; on prend l'extension, et on la passe en minuscule
Switch $extension
Case ".txt", ".ini" ; ca te permet de mettre plusieurs possibilités, séparés par des vircules
FileCopy($CmdLine[$i], @MyDocumentsDir & "\TXT", 1)
Case ".doc", "docx" ; on prend les documents Word
FileCopy($CmdLine[$i], @MyDocumentsDir & "\Word", 1) ; par exemple si tu as fait un répertoire pour tes documents Word
Case ".xls", "xlsx" ; on prend les documents Excel
FileCopy($CmdLine[$i], @MyDocumentsDir & "\Excel", 1) ; par exemple si tu as fait un répertoire pour tes documents Excel
EndSwitch
Next
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit
Si vis pacem para bellum
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
Bonjour,
Yes, ou alors évaluer le StringRight à une expression donc à (".txt" Or ".ini"), ce qui donne : If StringRight($CmdLine[$i], 4) = (".txt" OR ".ini").
Ça le fait aussi .... Mais honnêtement le "Switch" est plus "propre ..."
Yes, ou alors évaluer le StringRight à une expression donc à (".txt" Or ".ini"), ce qui donne : If StringRight($CmdLine[$i], 4) = (".txt" OR ".ini").
Ça le fait aussi .... Mais honnêtement le "Switch" est plus "propre ..."
A+
- zeshrek
- Niveau 10
- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
moutelous, je suis pas sur que ta suggestion passe...
If StringRight($CmdLine[$i], 4) = (".txt" OR ".ini")
il fera donc (".txt" OR ".ini) qui ne veut rien dire (les opérations booléennes se font sur la valeur binaire des nombres) qui donnera donc false
et donc le test donnera
if StringRight($CmdLine[$i], 4) = false
ce qui ne peut donner qu'un resultat false donc zou... saut au endif
A moins que je me gourre...
(ps en tout cas merci de dire que ma solution est propre
)
If StringRight($CmdLine[$i], 4) = (".txt" OR ".ini")
il fera donc (".txt" OR ".ini) qui ne veut rien dire (les opérations booléennes se font sur la valeur binaire des nombres) qui donnera donc false
et donc le test donnera
if StringRight($CmdLine[$i], 4) = false
ce qui ne peut donner qu'un resultat false donc zou... saut au endif
A moins que je me gourre...
(ps en tout cas merci de dire que ma solution est propre

Si vis pacem para bellum
Re: [R] Déplacer un ou des fichiers sur un executable
Ah merci ZeShrek ;D C'est exactement ce que je cherchais à faire.
- zeshrek
- Niveau 10
- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [R] Déplacer un ou des fichiers sur un executable
La classe, ca s'explique pas. Ca se vit !
(la modestie aussi, comme vous l'aurez remarqué !)
(la modestie aussi, comme vous l'aurez remarqué !)
Si vis pacem para bellum