[R] Fermeture de programme trop rapide.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
sanegone
Niveau 2
Niveau 2
Messages : 21
Enregistré le : jeu. 22 nov. 2007 10:55
Status : Hors ligne

[R] Fermeture de programme trop rapide.

#1

Message par sanegone »

Bonjour à tous,

J'ai un soucis dans mon code je ne comprend pas pourquoi tcprop.exe se referme immédiatement après sa fermeture quelqu'un peut m'aider ?

Code : Tout sélectionner

DIM $passwd, $var, $var1
        $var = '*******'
        $var1 = 'C:\Tclock\tcprop.exe'
        $passwd = InputBox("ED Institut", "        Entrez le mot de passe.", "", "*", 100, 75)  
            if $passwd = "********" then
                Run('runas /user:Administrateur@edinstitut cmd.exe')
                WinWaitNotActive("ConsoleWindowClass")
                send( $var & "{enter}")
                WinWaitNotActive("ConsoleWindowClass")
                send( $var1 & "{enter}")
                WinWaitNotActive("ConsoleWindowClass")
                ProcessClose ( "cmd.exe")
            else 
            MsgBox(0, "ED Institut", "Vous vous êtes trompé.", 0)
        endif   

 

Merci d'avance !
Modifié en dernier par sanegone le mer. 26 août 2009 11:30, modifié 1 fois.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..]Fermeture de programme trop rapide.

#2

Message par Voodoo »

[...] se referme immédiatement après sa fermeture
???
tcprop se ferme immédiatement après sont lancement non ?


Sauf si vous avez une raison particulière pour ne pas l'utiliser, il y a la fonction RunAs qui résume en une ligne ce que vous avez fait !
sanegone
Niveau 2
Niveau 2
Messages : 21
Enregistré le : jeu. 22 nov. 2007 10:55
Status : Hors ligne

Re: [..]Fermeture de programme trop rapide.

#3

Message par sanegone »

Bon je vais tenter d'expliquer de manière plus approfondie :)

J'avais tenter de lancer tcprop avec un RunAs cependant pour une raison mystérieuse et inconnu il semble y avoir un problème de droits, je me suis basé sur l'exemple suivant :

Code : Tout sélectionner

; Fill in the username and password appropriate for your system.
Local $sUserName = "Username"
Local $sPassword = "Password"

; Run a command prompt as the other user.
RunAs($sUserName, @ComputerName, $sPassword, 0, @ComSpec, @SystemDir)
Cependant quand je lance un invite de commande en administrateur et que je lance ensuite tcprop depuis cette invité de commande plus de problèmes droits. Je me suis donc tourné vers cette voie là.

Cependant comme je l'ai expliqué Tcprop apparaît et dans la seconde qui suit se ferme. Et j'ai besoin qu'il reste ouvert jusqu'à ce que l'utilisateur le ferme avec la petite croix windows ^^.

Mon besoin est donc de garder cette fenêtre ouverte voilà :) Si c'est toujours pas clair hésitez pas à me le dire.



EDIT : En fesant de petits test je me rend compte que le problème doit venir de la manière dont je code ( moi ignoble traitre administrateur de réseaux mwhahah ) puisque même en ouvrant un simple dossier de la même "manière" il se referme aussi immédiatement.

Je tourne mon raisonnement vers le champ ID de ma fenêtre tcprop pour la garder ouverte je pense qu'un sleep lié à l'id de celle-ci par un moyen qui m'ai encore inconnu est la meilleure solution que j'ai à porté de mains, mais si quelqu'un a mieux je suis ouvert à toute proposition.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..]Fermeture de programme trop rapide.

#4

Message par Voodoo »

Voila comment se déroule le programme:
  • Lancement de la console en mode admin
  • Exécution dans la console de tcprop
  • Fermeture de la console
Du coup sa ferme aussi tcprop. Pour corriger rapidement le problème vous pouvez changer cette ligne send( $var1 & "{enter}") par send( "start " & $var1 & "{enter}").

Sinon, sauf si vous êtes sur windows 98 ou inférieur, vous pouvez directement lancer tcprop avec RunAs() sans passer par la console. Puis, récupérer le pid renvoyer par cette fonction et faire un ProcessWait().
sanegone
Niveau 2
Niveau 2
Messages : 21
Enregistré le : jeu. 22 nov. 2007 10:55
Status : Hors ligne

Re: [..] Fermeture de programme trop rapide.

#5

Message par sanegone »

:mrgreen: merci je vais essayer voir ce que ca donne :)
Répondre