[R] Intégrer un programme à mon programme
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] Intégrer un programme à mon programme
Bonjour bonjour,
Première fois sur aide d'autoit, soyez indulgent.
La question est simple, est ce que je peux intégrer un programme directement dans l’exécutable générer par autoit.
Plus précisément, je voudrai utiliser clip.exe (petit programme windows qui permet de mettre la réponse à une commande dos dans le presse papier, exemple : dir | clip). Le programme clip.exe n'est pas présent de base dans xp.
Donc je voudrai savoir si je peux l'incorporer à mon exe où si je suis obliger de le copier sur l'ordi cible.
Merci
Faco
Première fois sur aide d'autoit, soyez indulgent.
La question est simple, est ce que je peux intégrer un programme directement dans l’exécutable générer par autoit.
Plus précisément, je voudrai utiliser clip.exe (petit programme windows qui permet de mettre la réponse à une commande dos dans le presse papier, exemple : dir | clip). Le programme clip.exe n'est pas présent de base dans xp.
Donc je voudrai savoir si je peux l'incorporer à mon exe où si je suis obliger de le copier sur l'ordi cible.
Merci
Faco
Modifié en dernier par Faco le ven. 02 août 2013 16:19, modifié 1 fois.
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Intégrer un programme à mon programme
FileInstall() fait ce genre de choses.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Intégrer un programme à mon programme
Cela dit ce genre de fonctionnalité (presse-papiers) peut être géré directement par autoit 

" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Intégrer un programme à mon programme
Basé sur le code de _RunDos(), voici une fonction AutoIt qui fait l'équivalent de clip.exe :
Code : Tout sélectionner
_RunClip("Dir") ; Lance la commande à récupérer dans le presse papier.
; Pour la demo :
ShellExecute("notepad.exe") ; Lance le bloc-notes.
Sleep(1500) ; Attends 1,5 seconde.
Send("^v") ; Copie le contenu du presse papier.
Func _RunClip($sCommand)
Local $TmpFile = @TempDir & '\clip.tmp'
Local $sResult = ""
RunWait(@ComSpec & " /C " & $sCommand & '>"' & $TmpFile & '"' , "", @SW_HIDE)
If FileExists($TmpFile) Then
$sResult = FileRead($TmpFile)
FileDelete($TmpFile)
EndIf
ClipPut ($sResult)
Return SetError(@error, @extended, $sResult)
EndFunc ;==>_RunClipThierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Intégrer un programme à mon programme
Merci tous le monde,
Jchd : c'est pas le but rechercher, je voudrai justement ne pas avoir à le copier, mais merci
Tlem : Tricheur !!!
Mais d'accord ça fait le boulot. je garde ton _RunCLip. Merci 
Donc j'ai la solution pour mon bout de code mais j'en conclu quand même que je ne peux pas faire une sorte de package avec un exe que j’appellerai dans mon script.
Merci Tous
Faco
Jchd : c'est pas le but rechercher, je voudrai justement ne pas avoir à le copier, mais merci
Tlem : Tricheur !!!
Donc j'ai la solution pour mon bout de code mais j'en conclu quand même que je ne peux pas faire une sorte de package avec un exe que j’appellerai dans mon script.
Merci Tous
Faco
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Intégrer un programme à mon programme
Bonsoir.
Comme l'a dit jchd, FileInstall() fait le boulot.
Lors de la compilation, le programme/fichier indiqué par FileInstall() sera automatiquement intégré "aux ressources" du script. Cette ligne placée judicieusement permet lors du lancement du script d'extraire le programme/fichier dans le répertoire indiqué et donc il sera disponible à l'utilisation.
Exemple :
Après, si le fait qu'un exécutable soit "décompressé" pour utilisation ne vous convient pas, il est possible d'intégré le programme d'une autre manière et de lancer son code sans faire d'extraction, mais franchement ma solution (celle du tricheur) sera bien plus rapide et pratique. 
Comme l'a dit jchd, FileInstall() fait le boulot.
Lors de la compilation, le programme/fichier indiqué par FileInstall() sera automatiquement intégré "aux ressources" du script. Cette ligne placée judicieusement permet lors du lancement du script d'extraire le programme/fichier dans le répertoire indiqué et donc il sera disponible à l'utilisation.
Exemple :
Code : Tout sélectionner
; Le programme clip.exe doit être dans le même répertoire que le script lors de la compilation.
FileInstall("clip.exe", @TempDir)
$CommandeDOS = "Dir"
Run(@ComSpec & " /c " & $CommandeDOS & ' | "' & @TempDir & '\clip.exe"', "", @SW_HIDE)Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Intégrer un programme à mon programme
Et ba, j'avais mal lu l'aide. effectivement ça peux être intéressent.
Je ne l'utiliserai pas là vu que tu m'a donné une autre solution Tlem mais je garde ça en tête.
je serai aussi intéresser pour ce que tu as dit à la fin de ton message :
Ne prend pas trop de temps pour me faire du code, si tu m'aiguille sur les bonnes fonctions ça me suffit.
Merci
Je ne l'utiliserai pas là vu que tu m'a donné une autre solution Tlem mais je garde ça en tête.
je serai aussi intéresser pour ce que tu as dit à la fin de ton message :
► Afficher le texte
Merci
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Intégrer un programme à mon programme
Le lancement de code à la volée à été abordé plusieurs fois sur ce forum, mais il me semble que la solution est sur le forum US.
Comme je l'ai dit, il implique un code plus complexe et je ne suis pas sur de la pérennité d'un tel procédé aux vues des AV et de l'évolution du code AutoIt. ^^
Rien ne vous empêche tout comme un tas d'autres programmes d'embarquer en tant que ressource un programme libre (votre script et à coté le programme clip.exe). InnoSetup vous permettra de faire un installateur qui fera tout ce qu'il faut (raccourcis, clé de registre, dossier d'install, etc ...).
Comme je l'ai dit, il implique un code plus complexe et je ne suis pas sur de la pérennité d'un tel procédé aux vues des AV et de l'évolution du code AutoIt. ^^
Rien ne vous empêche tout comme un tas d'autres programmes d'embarquer en tant que ressource un programme libre (votre script et à coté le programme clip.exe). InnoSetup vous permettra de faire un installateur qui fera tout ce qu'il faut (raccourcis, clé de registre, dossier d'install, etc ...).
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Intégrer un programme à mon programme
Pour info et au passage, la prochaine version stable aura une structure PE "normale". Voir les discussions concernant les betas en cours.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.

