[R] Blocage Case

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
ThESeRvEuR
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 07 déc. 2009 10:29
Status : Hors ligne

[R] Blocage Case

#1

Message 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,
Modifié en dernier par ThESeRvEuR le mar. 10 nov. 2015 08:55, modifié 1 fois.
Tout est possible, tout est réalisable, c'est le jeu de la vie...
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Blocage Case

#2

Message par TommyDDR »

Bonjour,
Pouvez-vous fournir le code complet pour reproduction ?

Merci.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
ThESeRvEuR
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 07 déc. 2009 10:29
Status : Hors ligne

Re: [..] Blocage Case

#3

Message 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
Tout est possible, tout est réalisable, c'est le jeu de la vie...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Blocage Case

#4

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
ThESeRvEuR
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 07 déc. 2009 10:29
Status : Hors ligne

Re: [..] Blocage Case

#5

Message 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 ...
Tout est possible, tout est réalisable, c'est le jeu de la vie...
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Blocage Case

#6

Message par walkson »

Bonjour,
Et comme cela ?

Code : Tout sélectionner

ShellExecute("msra.exe", "/offerRA " & GUICtrlRead($Combo_Liste))
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Blocage Case

#7

Message 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."
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
ThESeRvEuR
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 07 déc. 2009 10:29
Status : Hors ligne

Re: [..] Blocage Case

#8

Message 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 ....
Tout est possible, tout est réalisable, c'est le jeu de la vie...
Avatar du membre
ThESeRvEuR
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 07 déc. 2009 10:29
Status : Hors ligne

Re: [..] Blocage Case

#9

Message 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
Tout est possible, tout est réalisable, c'est le jeu de la vie...
Répondre