[R] Boutton pour éxécuter un programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
hadri13
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 26 févr. 2011 01:16
Status : Hors ligne

[R] Boutton pour éxécuter un programme

#1

Message par hadri13 »

Bonjours a tous,

Alors voila j'ai découvert AutoIt depuis peu, et je me suis lancer dans la conception d'un tout petit programme avec un GUI que voici :

Image

Mais je bloque au niveau des raccourcis je ne trouve de solution pour associer les boutons avec le programme correspondant.

Voici mon script :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Utilitaire = GUICreate("Choisir un utilitaire", 234, 186, 197, 124)
Global $cmd = GUICtrlCreateButton("Invite de commandes", 8, 8, 217, 33, $WS_GROUP)
GUICtrlSetCursor (-1, 0)
Global $Regedit = GUICtrlCreateButton("Regedit", 8, 56, 217, 33, $WS_GROUP)
GUICtrlSetCursor (-1, 0)
Global $Msconfig = GUICtrlCreateButton("Msconfig", 8, 104, 217, 33, $WS_GROUP)
GUICtrlSetCursor (-1, 0)
Global $chargement = GUICtrlCreateProgress(8, 152, 217, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
Après de longues recherches j'ai trouver ceci (dans ce cas pour l'invite de commande):

Code : Tout sélectionner

Do
    $msg = GUIGetMsg()
    if $msg = $cmd Then _runProg()
until $msg = $GUI_EVENT_CLOSE


Func _runProg()
    Run("cmd")
EndFunc
Cela a fonctionné, j'ai donc utiliser le même script pour les autres programmes mais hélas ca n'a pas fonctionné.
Lorsque je clic sur le bouton rien ne se passe (aucune erreur au lancement du script).
Je essayé de nommer la fonction "_runProg" différemment pour chaque programmes mais toujours aucun résultat.

Merci de vôtre aide !
Modifié en dernier par TommyDDR le jeu. 03 mars 2011 15:11, modifié 2 fois.
Raison : Supression des couleurs
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#2

Message par zeshrek »

je saisis mal pourquoi tu as remplacé la boucle while/wend par do/until, et le switch/case par un if/then mais apres tout, c'est possible, alors pourquoi pas.

A part ca ta question est trop basique. Lis des exemples de scripts et la doc, ca devrait te mettre sur la voie
Si vis pacem para bellum
hadri13
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 26 févr. 2011 01:16
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#3

Message par hadri13 »

Merci de ton aide, je vais aller voir la doc, si c'est basique je devrais m'en sortir :P.
hadri13
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 26 févr. 2011 01:16
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#4

Message par hadri13 »

J'ai regarder la doc, (principalement ici : http://www.autoitscript.fr/autoit3/docs ... opMode.htm)

J'ai donc essayé ceci (toujours pour l'invite de commande):

Code : Tout sélectionner

While 2
    $msg = GUIGetMsg ()

    Select
        Case $msg = $cmd
            Run ("cmd.exe")

    EndSelect

WEnd
Encore une fois cela fonctionne, mais seulement pour l'invite de commande. Lorsque je répète la commande, quand je clique sur les boutons des autres programmes rien ne se passe.

Je post la commande répétée au cas où :wink: :

Code : Tout sélectionner

While 3
    $msg = GUIGetMsg ()

    Select
        Case $msg = $Msconfig
            Run ("msconfig.exe")

    EndSelect
WEnd
Je continue a chercher mais un peu d'aide serait la bienvenue :lol:
Modifié en dernier par TommyDDR le jeu. 03 mars 2011 15:13, modifié 1 fois.
Raison : Supression des couleurs
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#5

Message par TommyDDR »

while 1, while 2, while 3 ?

Pouvez vous fournir tout le code ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#6

Message par zeshrek »

[Mode j'oublie pas que je suis un modo ON]
Bon, alors première chose, il me semble avoir lu qqpart que le balisage couleur devait ettre limité a cause de la place que ca prend dans la base de donnée.
Merci d'en tenir compte a l'avenir
[Mode j'oublie pas que je suis un modo OFF]

Ceci etant dit, revenons en a tes sources :

Code : Tout sélectionner

While 2
    $msg = GUIGetMsg ()
    Select
        Case $msg = $cmd
            Run ("cmd.exe")
    EndSelect
WEnd

Code : Tout sélectionner

While 3
    $msg = GUIGetMsg ()
    Select
        Case $msg = $Msconfig
            Run ("msconfig.exe")
    EndSelect
WEnd

Déjà, premier truc, tu n'as pas compris un certain nombre de chose :
1/ While/Wend -> le fait que tu l'incrémente montre clairement que tu n'as pas compris son utilisation. C'est pourtant une commande présente dans a peu pres tous les langages, car elle est fondamentale. Elle permet de faire une boucle infinie avec sortie conditionnelle (contrairement a un for/next par ex qui permet de faire une boucle qui est limitée a un certain nombre d'itérations)
2/ Select/case -> c'est cette fonction qui te permettra concretement de faire ce que tu veux.

La solution par rapport a ce que tu veux faire (selon ce que j'en ai compris) :

Code : Tout sélectionner

While 1
    $msg = GUIGetMsg ()
    Select
        Case $GUI_EVENT_CLOSE
            Exit
        Case $msg = $cmd
            Run ("cmd.exe")
        Case $msg = $Regedit
            Run ("regedit.exe")
        Case $msg = $Msconfig
            Run ("msconfig.exe")
    EndSelect
WEnd
Si vis pacem para bellum
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#7

Message par TommyDDR »

Merci zeshrek... c'est là où je voulais en venir ^^
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
hadri13
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 26 févr. 2011 01:16
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#8

Message par hadri13 »

Merci beaucoup cela fonctionne !
Je vais passer un peu de temps sur la doc pour me familiariser un peu avec ce langage je débute totalement dans ce domaine.

Encore merci de votre aide !
hadri13
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 26 févr. 2011 01:16
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#9

Message par hadri13 »

Me revoilà, j'avais en fait un petit problème, le programme se fermait tout seul a peine après s'être lancé.
J'ai donc consulter la doc est j'ai résolu ce petit problème.

Voici le code (au cas où cela servirai a quelqu'un)

Code : Tout sélectionner

While 1
    $msg = GUIGetMsg ()

    Select
        Case $msg = $cmd
            Run ("cmd.exe")
        Case $msg = $Regedit
            Run ("regedit.exe")
        Case $msg = $Msconfig
            Run ("msconfig.exe")
        Case $msg = $GUI_EVENT_CLOSE
            Exit
        ExitLoop

EndSelect

WEnd
Merci encore de votre aide !
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#10

Message par FernandG »

Bonsoir,

Le code du Geant vert est parfait. Dans le votre, le ExitLoop ne sert à rien. Excepté l'ordre des Case, il est identique.

Sinon, si vous pensez que votre demande est résolue, n'oubliez pas de changer la balise [..] en [R] dans le titre de votre premier message.

Voir Présentation d'un message.

Bonne soirée.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Boutton pour éxécuter un programme

#11

Message par zeshrek »

FernandG a écrit :Le code du Geant vert est parfait.
Je crois que tout est dit !
:D
Si vis pacem para bellum
Avatar du membre
floriande26
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 03 mars 2011 12:25
Status : Hors ligne

Re: [R] Boutton pour éxécuter un programme

#12

Message par floriande26 »

Bonjour,

Je suis nouveau sur ce forum et donc tu seras le 1er que j'aide a concevoir un script.

Code :
► Afficher le texte
Voilà :D , j'espère qu'il fonctionneras pour vous
Image
Répondre