Send ne fonctionne pas avec Runas

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
sharky29
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 11 mars 2015 00:58
Status : Hors ligne

Send ne fonctionne pas avec Runas

#1

Message par sharky29 »

Bonjour à tous,

je souhaite automatiser une action dans une mmc, que je lance donc en tant qu'admin et je me heurte à ce pb.
J'ai appliqué mon pb avec Notepad qui réagit pareil.

En effet, avec Run, je peux lancer Notepad et envoyer un texte via Send, mais avec RunAs, je n'arrive pas à renvoyer de texte, ou de commande avec Send.
D'ailleurs la fermeture Winclose ne fonctionne pas non plus.

Est ce un pb de droit ???

Bref, merci de votre aide.

Code : Tout sélectionner

#include <AutoItConstants.au3>

Opt("WinTitleMatchMode", 2)
Opt("TrayIconDebug", 1)
Opt("GuiCloseOnEsc", 1)

Local $sUserName = "user"
Local $sPassword = "password"

Local $iPID = RunAs($sUserName, @ComputerName, $sPassword, 0, "notepad.exe", "", @SW_SHOWMAXIMIZED)
;Local $iPID = Run("notepad.exe")  

WinActivate ($iPID)     ;prend le focus

Send ("Ceci est un test")

Send ("!f")			;ALT F		;Fichier
Send ("{q}")		;Q			;Quitter
Send ("{n}")		;N			;Ne pas sauvegarder

MsgBox (64, "Information", "Fermeture de la fenetre de travail")

WinClose ($iPID)
sharky29
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 11 mars 2015 00:58
Status : Hors ligne

Re: Send ne fonctionne pas avec Runas

#2

Message par sharky29 »

En fait, je pense que cela viens du fait que le script n'est pas lancé en tant qu'admin, alors que celui ci exécute (RunAs) un programme en tant qu'admin.

Je vais donc voir su côté de #RequireAdmin.
simsap92
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 20 nov. 2018 19:50
Status : Hors ligne

Re: Send ne fonctionne pas avec Runas

#3

Message par simsap92 »

Bonjour Sharky29,

Si je peux me permettre je te dépose ce que j'ais pu trouver comme solution à se problème

j'ais d'abords ajouté au début de mon script

Code : Tout sélectionner

 #RequireAdmin
Essaies de remplacer :

Code : Tout sélectionner

WinActivate ($iPID)  ;prend le focus

Par:

Code : Tout sélectionner

WinWaitActive("RunAs", "", 1 ou TimeOut de ton choix)
J'ai pu Tester en admin puis avec un compte user simple sans droits et pour moi cela a fonctionné,
mon script s'effectue bien en administrateur ce qui n'était pas le cas auparavant.

pour le PID, j'ais créé une petite boite de dialogue et ensuite je la clos avec cette commande
bien sur je pense qu'il y a surement mieux mais ça a le mérite de fonctionner en tout cas chez moi

Si ça peut t'aider, Voici ce que j'ais utilisé :

Code : Tout sélectionner

MsgBox($MB_SYSTEMMODAL,"Process En Cours","Le Process Est : " & $_iPID,10)
ProcessClose($_iPID)
Cdlt.
Répondre