Page 1 sur 1

[R] Blocage Case

Posté : lun. 09 nov. 2015 13:05
par ThESeRvEuR
Bonjour à tous,

Voilà, je rencontre un petit problème.
J'ai développé une GUI avec différents onglets, des groupes, des boutons, .... qui regroupe tous les outils, logiciels dont j'ai besoin au quotidien.

Par contre, mon problème concerne juste une partie du code :

Code : Tout sélectionner

Case $Button_MSRA
        If Ping (GUICtrlRead($Combo_Liste)) Then
            If _RunDos ("msra.exe /offerRA " & GUICtrlRead($Combo_Liste)) Then ExitLoop
        Else
            MsgBox(16, "Erreur", "Impossible de joindre le PMF " & GUICtrlRead($Combo_Liste) & @CRLF & "Vérifiez votre connexion réseau ou contactez le support.")
        EndIf
 
Lorsque je lance ce bouton, MSRA se lance correctement sur le PC que j'ai sélectionné dans ma combo list, par contre, pour pouvoir cliquer sur un autre bouton, je dois obligatoirement ferme MSRA. Je ne comprends pas trop pourquoi, étant donné que c'est le seul bouton qui me pose problème.

J'ai bien essayé d'intégrer ContinueCase ou Exitloop, mais rien n'y fait....

Avez-vous une idée ? (Je suis certain qui oui) :P

Merci d'avance,

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 13:08
par TommyDDR
Bonjour,
Pouvez-vous fournir le code complet pour reproduction ?

Merci.

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 13:41
par ThESeRvEuR
Ci-joint le code complet, c'est en cours, donc tout n'est pas encore clean et je suis certain qu'il peut y avoir des simplifications à faire (si quelqu'un veut participer) :
► Afficher le texte

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 14:35
par orax
_RunDos est "bloquant", il faudra utiliser Run plutôt.
_RunDos a écrit :Remarks
The script waits until the command has been executed.
Le ExitLoop ajouté ne sert à rien.

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 14:58
par ThESeRvEuR
Oui j'ai vu, j'ai déjà supprimé le exitloop ...
J'ai bien essayé de passer par Run avec le code suivant, mais cela ne fonctionne pas, MSRA ne se lance pas .... :(

Code : Tout sélectionner

Run ("C:\Windows\System32\msra.exe /offerRA " & GUICtrlRead($Combo_Liste))
La seule fonction que j'ai trouvé pour est _RunDos ...

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 17:12
par walkson
Bonjour,
Et comme cela ?

Code : Tout sélectionner

ShellExecute("msra.exe", "/offerRA " & GUICtrlRead($Combo_Liste))

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 18:16
par orax
Avec ShellExecute c'est bon pour moi mais pourquoi ça ne fonctionne pas avec Run par contre ?
Visiblement si le script s'exécute en 64 bits, Run() n'arrive pas à exécuter la version 64 bits de MSRA. C'est normal ça ??! :shock: Ces histoires de bits ça m'a toujours perturbé.

Code : Tout sélectionner

#AutoIt3Wrapper_UseX64=y
#include <WinAPI.au3>
Run(@WindowsDir & "\System32\msra.exe")
ConsoleWrite(_WinAPI_GetLastErrorMessage() & @CRLF) ; retourne "L’opération demandée nécessite une élévation."

Re: [..] Blocage Case

Posté : lun. 09 nov. 2015 20:17
par ThESeRvEuR
Re,

Je testerais ça au boulot demain, mais il me semble que j'avais testé ShellExecute .... Mais parfois ma mémoire flanche :D

Pour l'histoire du 64 bits, mon script tourne des systèmes 32 bits ....

Re: [..] Blocage Case

Posté : mar. 10 nov. 2015 08:55
par ThESeRvEuR
De retour ce matin, le ShellExecute fonctionne très bien, j'étais pourtant persuadé l'avoir testé, désolé d'avoir pris votre temps pour si peu.... et merci à vous !

Si vous avez des idées de simplification du script, je suis preneur par contre :P