Page 1 sur 1

Identification controlid

Posté : ven. 09 févr. 2018 23:02
par kerozen
Bonjour a tous,
Je suis presque novice sur Autoit.
Je dois créer un scrip d'assistance sans installation pour des personnes âgées.
Je sais qu'il existe des outils mais il faut dans ce cas faire une installation( chose impossible à distance )
J'envisage d'utilisé les outils windows. Je lance donc msra.exe de windows assistance
Je n'arrive pas a cliquer automatiquement sur le bouton d'invitation.
visiblement le control id n'est pas reconnu, j'ai aussi tenté avec l'id 248 mais cela ne fonctionne pan non plus.

Mon erreur est surement bête mais je sèche depuis un certain temps et n'ai rien trouvé ni sur le forum ni sur le net.
Bien sur je ne peux pas utiliser un déplacement de souris suivi d'un click du fait d'une résolution d'écran incertaine.
D'avance merci de votre aide.



J'ai créer le début de code suivant.
; ----------------------------------------------------------------------------
;
; AutoIt Version: 3.1.0
; Author:         A.N.Other <myemail@nowhere.com>
;
; Script Function:
;  Template AutoIt script.
;
; ----------------------------------------------------------------------------



#include <GuiConstants.au3>
#include <Date.au3>


$install=0
$partage=0
$TRANSPARENCE = 1
$VERIF=10

BlockInput ( 1 )

Send("#r")
WinWaitActive ( "Exécuter")
send ("msra")
send ("{enter}")
WinWaitActive ( "Assistance à distance Windows")

Sleep(100)

$Partage=ControlGetHandle ( "Assistance à distance Windows", "", "$Button4" )
ControlClick("Assistance à distance Windows", "",$Partage)

Re: Identification controlid

Posté : lun. 12 févr. 2018 12:30
par TommyDDR
Remplacez "$Button4" par le contenu de la case "Advanced mode" (crochets compris) ;)

Astuce : Double cliquez sur la ligne pour mettre son contenu dans le presse papier, et collez ensuite dans votre script

Re: Identification controlid

Posté : lun. 26 févr. 2018 22:58
par kerozen
Bonjour,
Déjà un grand merci de la réponse et je vous pris de m'excuser du retard j'étais en vacances et sans réseau.
Je viens d'essayer la solution proposée, elle reste sans effet.
Je dois faire une erreur quelque part.
Normalement vous devez pouvoir tester ce début de script sous windows 10 puisque msra.exe est un outil de base.
merci d'avance de votre aide
Cordialement
[#include <GuiConstants.au3>
#include <Date.au3>


$install=0
$partage=0
$TRANSPARENCE = 1
$VERIF=10

BlockInput ( 1 )

Send("#r")
WinWaitActive ( "Exécuter")
send ("msra")
send ("{enter}")
WinWaitActive ( "Assistance à distance Windows")

;Sleep(100)

$Partage=ControlGetHandle ( "Assistance à distance Windows", "", "[CLASS:Button; INSTANCE:4]" )
ControlClick("Assistance à distance Windows", "",$Partage)

Re: Identification controlid

Posté : mar. 27 févr. 2018 10:59
par walkson
Bonjours,
#RequireAdmin
ShellExecute("msra.exe")
 Local $hWnd = WinWait("Assistance à distance Windows", "", 10)
 Sleep(2000)
 $rep = ControlClick($hWnd, "", "[CLASS:Button; INSTANCE:4]")
 Sleep(2000)
 WinClose($hWnd,'')
Le mode administrateur est obligatoire pour fonctionner (sous Win 7) #RequireAdmin
Vous confondez l'ID (ex: 258) avec le handle (ex: 0x123456)

Re: Identification controlid

Posté : mer. 28 févr. 2018 19:42
par kerozen
Bonjour,
Merci de votre réponse,
C'est vrai que ce script fonctionne mais je ne comprend pas pourquoi il faut le mode administrateur puisque manuellement ce n'est pas nécessaire.
Je ne suis pas certain que mes anciens sachent le faire surtout en mode "stress je n'y arrive pas"
Avec ce paramètre supplémentaire l'ancien fonctionne aussi même si il est moins propre.
N'y a t'il pas un paramètre qui ne demanderait pas le mot de passe admin ?


j'ai au moins appris la façon de lancer une appli" ShellExecute", c'est déjà super.

Cordialement

Re: Identification controlid

Posté : mer. 28 févr. 2018 22:51
par Tlem
Bonsoir.
Sans vouloir gâcher vos recherches, avez-vous jeté un œil sur les options disponibles pour msra.exe ?

msra_options.JPG

Par ce que la première étape de votre code peut être résolue par : msra.exe /novice

Re: Identification controlid

Posté : mer. 28 févr. 2018 23:24
par kerozen
Génial !
Il ne faut pas toujours chercher compliqué.
Je dois dire que je n'y avais pas pensé.
Je vais vraiment regarder les possibilités de msra

Merci beaucoup de cette solution ,même si j'aurai aimé savoir pourquoi il faut les droits admin pour le script et qu'ils ne sont pas nécessaire en manuel

Cordialement