[R] Rendre execution invisible

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[R] Rendre execution invisible

#1

Message par jcaspar »

B :D onjour à tous !

Je souhaiterais que l'exécution du code ci dessous soit invisible pour l'utilisateur
pouvez vous svp m'indiquer s'il est possible de lancer la console cmd de manière invisible ? :roll:

Merci d'avance pour vos idées et conseils :mrgreen:
JeanMarc
► Afficher le texte
Modifié en dernier par jcaspar le jeu. 20 août 2009 21:17, modifié 2 fois.
Dididj
Niveau 4
Niveau 4
Messages : 58
Enregistré le : lun. 17 août 2009 17:29
Status : Hors ligne

Re: [..] Rendre execution invisible

#2

Message par Dididj »

Bonjour,

en remplacent la ligne

Code : Tout sélectionner

Run(@ComSpec & " /k  runas /user:administrateur cmd.exe","")
par

Code : Tout sélectionner

Run(@ComSpec & " /k  runas /user:administrateur cmd.exe","",@SW_HIDE)


le cmd est lancer et aucune fenêtre ne s'affiche par contre je crois qu'il faut remplacer la commance "Send" par "ControlSend".
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Rendre execution invisible

#3

Message par jcaspar »

M :D erci de votre réponse !

j'ai bien testé cette possibilité...mais elle provoque une réaction anormale
cmd s'ouvre une multitude de fois ..etc ... le fichier executable se grise et devient
inacessible.....un fichier ea se rajoute ..... :o :o :roll:

Peut être avez vous déjà rencontré ce problème ? :mrgreen:
Jean Marc
Dididj
Niveau 4
Niveau 4
Messages : 58
Enregistré le : lun. 17 août 2009 17:29
Status : Hors ligne

Re: [..] Rendre execution invisible

#4

Message par Dididj »

Je n'ai eu aucune problème ,je vais essayé de trouver une autre fonction.
Un fichier ea c'est quoi ? :?

J'edit si je trouve.

Édit :
► Afficher le texte
Voila chez moi ça fonctionne parfaitement.
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Rendre execution invisible

#5

Message par jcaspar »

Merci de votre réponse ! :D

Le script fonctionne mais il ne fait rien car lorsque l'on desactive la fonction hide on s'appercoit que seul la console
s'ouvre mais rien ne s'écrit ..donc aucune action n'est effectuée :?

Il semberait que la command controlsend ne fonctionne pas avec la console...

cf la documentation :ControlSend is only unreliable for command prompts ... diablerie que cela !

Continuons de chercher nous allons bien finir par trouver une solution ... :wink:
Dididj
Niveau 4
Niveau 4
Messages : 58
Enregistré le : lun. 17 août 2009 17:29
Status : Hors ligne

Re: [..] Rendre execution invisible

#6

Message par Dididj »

Vu que je ne connais pas d'autre commande pour simuler une touche je vais me tourné vers une autre solution.
Si le cmd s'exécute avec la fenêtre mais a l'arrière plan cela peut-il convenir ?
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Rendre execution invisible

#7

Message par Iste »

Simuler les actions humaines et les bot graphiques ne doivent etre utilisé qu'en dernier recourt.

La, de ce que j'ai compris tu ouvre l'invite de commande pour executer acrobat.exe (qui se trouve a un endroit que tu connais)
Ben, pourquoi ne pas simplement utiliser shellexecute() ?
Si c'est pour une histoire de droit d'admin, le sujet a déja été abordé sur le forum

Pis meme, les

Code : Tout sélectionner

WinActivate("C:\WINDOWS\system32\cmd.exe","")
send("exit")
send("{ENTER}")
Bah, autant faire un Winclose()
Signez ici
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Rendre execution invisible

#8

Message par jcaspar »

M :D erci de votre aide !
l'essentiel étant que l'utilisateur ne soit pas dérangé et qu'il ne voit pas ce qui se passe ...

Je suis preneur pour toute nouvelle idée
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Rendre execution invisible

#9

Message par Iste »

Ben dans ce cas, dites nous ce que vous voulez faire exactement, et on pourra vous dire comment le faire.

Car "rendre invisible" un script, c'est pas la solution. Dididj a essayé au mieux, mais ca reste bancale.

On ne "rend" pas un script invisible, mais on le "crée" ainsi

'fin bref, voila
Signez ici
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Rendre execution invisible

#10

Message par jcaspar »

Bonsoir à tous !

Merci encore pour vos astuces et conseils. :wink:

Je souhaiterais executer ce code de manière à ce que la console ne soit pas visible
avec SW_HIDE (le script bug ..curieusement) voilà pourquoi je cherche une autre alternative ... et sans SW_HIDE tout va bien mais l'ouverture de console est visible.
Run(@ComSpec & " /k runas /user:administrateur cmd.exe","SW_HIDE") :?:

Je suis tout à fait d'accord avec ceux qui me diront qu'il faut utiliser la fonction runas
mais à mon grand regret étant dans un domaine ...rien à faire malgré avoir testé toutes les solutions proposées dans le forum...

Dommage que runasset de l'ancienne version d'autoit ne sois plus implanté dans cette nouvelle version !





Code : Tout sélectionner


#NoTrayIcon
#Include <Misc.au3>
global $titre="cmd.exe (en tant qu'utilisateur"
global $machine=@computername
global $titre1="\administrateur)"


Run(@ComSpec & " /k  runas /user:administrateur cmd.exe","SW_HIDE")
   sleep(100)
   send("xxxxx")
   send("{ENTER}")
   sleep(100)
WinActivate($titre &$machine & $titre1 ,"")
sleep(200)
send("cd \")
send("{ENTER}")
sleep(100)
send("cd "&@tempdir)
send("{ENTER}")
sleep(200)
send("acrobat.exe")
send("{ENTER}")
WinActivate($titre &$machine & $titre1 ,"")
send("exit")
send("{ENTER}")
WinActivate("C:\WINDOWS\system32\cmd.exe","")
send("exit")
send("{ENTER}")
 
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Rendre execution invisible

#11

Message par orax »

jcaspar a écrit :Je suis tout à fait d'accord avec ceux qui me diront qu'il faut utiliser la fonction runas
mais à mon grand regret étant dans un domaine ...rien à faire malgré avoir testé toutes les solutions proposées dans le forum...

Dommage que runasset de l'ancienne version d'autoit ne sois plus implanté dans cette nouvelle version !
C'est étrange que ça ne marche pas puisqu'il y a bien un paramètre pour mettre un domaine.

J'ai vu aussi qu'il a les API CreateProcessAsUser et CreateProcessWithLogonW qui pourraient peut-être correspondre.

Sinon, vous pourriez utiliser 2 scripts (mais regroupés en un seul avec FileInstall).
Dans cet exemple : le script secondScript.exe sera exécuté avec les droits voulus. A moins que vous souhaitez absolument avoir accès à l'invite de commande du DOS...

Code : Tout sélectionner

Global $utilisateur = "xxx"
Global $mdp = "xxx"
Global $programme = @TempDir & "\secondScript.exe"

FileInstall("C:\secondScript.exe",$programme,1)

Run("runas /user:" & $utilisateur & " " & $programme, "c:\", @SW_HIDE)

; attends que RunAs soit entièrement chargé
While ControlGetText("C:\WINDOWS\system32\runas.exe", "", "") = ""
    Sleep(10)
WEnd

ControlSend("C:\WINDOWS\system32\runas.exe", "", "", $mdp & @CRLF, 1)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Rendre execution invisible

#12

Message par jcaspar »

:D Super cette suggestion je vais tester !

Comment serait il possible d'utiliser les API CreateProcessAsUser et CreateProcessWithLogonW ? :?: :roll:

Merci encore pour votre aide vous êtes trop fort :mrgreen: !

Jean Marc
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Rendre execution invisible

#13

Message par orax »

C'est la fonction DllCall() pour pouvoir les utiliser ; mais je ne sais absolument pas si c'est bien celle-ci qu'il faudrait utiliser dans le cas présent et ça serait juste pour éviter de lancer le programme runas.exe.
orax a écrit :Sinon, vous pourriez utiliser 2 scripts (mais regroupés en un seul avec FileInstall).
Eh... en fait, autant n'en lancer qu'un seul. Je ne sais plus pourquoi j'avais écrit ça. :roll:
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre