[R] ControlID et ClassnameNN

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

[R] ControlID et ClassnameNN

#1

Message par Gnifrus »

Bonjour,

Je vous soumets un problème car je ne m'en sors pas. J'ai essayé de m'en sortir en cherchant toute la journée, en vain.

J'automatise l'installation d'un logiciel, au moyen de la fonction "ControlSetText("Outil de lancement de ", "", "[ID:1022]", "blablabla")" notamment.
Seulement, au bout d'un moment, cette fonction ne complète plus la zone. Par contre, si je fais un "ControlGetText" dessus, il me trouve bien "blablabla".

J'ai remarqué que si j'utilisais "ControlSetText("Outil de lancement de ", "", "edit14", "blablabla")", cela fonctionnait. correctement.

Le soucis est que le nom "edit14" n'est pas toujours le bon, alors que [ID:1022] ne bouge pas.

N'y aurait-il pas une possibilité afin de trouver le nom "Edit14" (ou autre à partir du controlID [ID:1022] ?
En d'autre termes, trouver le ClassnameNN en fonction de l'ID ?

Cela me permettrait d'utiliser la fonction "ControlSetText("Outil de lancement de ", "", "editxx", "blablabla")" sans erreur...

Euh.....je me fais bien comprendre là ? Pas sûr..... :oops:

Je suis à votre dispo pour toute précision et compte sur vous !

Merci par avance et à bientôt,

Gnifrus.
Modifié en dernier par Gnifrus le mer. 24 sept. 2014 23:23, modifié 1 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#2

Message par jguinch »

_WinAPI_GetDlgCtrlID permet de récupérer l'ID d'un contrôle à partir de son handle.

Code : Tout sélectionner

#Include <WinAPI.au3>
$hwnd = ControlGetHandle("Outil de lancement de ", "", 1022)
$ID = _WinAPI_GetDlgCtrlID($hwnd) 
 
Sinon, il y a ça : http://www.autoitscript.fr/forum/viewto ... =6&t=10670
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#3

Message par mikell »

[ID:1022] ne bouge pas ?

Code : Tout sélectionner

ControlSetText("Outil de lancement de ", "", 1022, "blabla")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#4

Message par Gnifrus »

Bonjour,

Tout d'abord, un grand merci pour vos réponses rapides !

Le problème est que ça ne marche pô.... bouhhhhhh !!! :(

La solution donnée par jguinch ne fonctionne pas, car elle fait référence à 1022 (en effet, _WinAPI_GetDlgCtrlID(ControlGetHandle("Outil de lancement de ", "", 1022)) renvoi le résultat 1022 dans le controlSetText, et ça, ça ne fonctionne pas. Seul "Edit14" fonctionne (je ne pige pas pourquoi)

Idem pour la solution de mikell, qui me propose de mettre 1022 dans le ControlSetText.

En fait, je pense qu'il me faudrait une fonction qui me permette de trouver "Edit14" à partir de du ControlID 1022 afin de la mettre dans le ControlSetText.

Je n'ai pas l'explication du pourquoi ça fonctionne avec "Edit14" et pas avec 1022 ???

ça m'énerve... :evil:

Merci encore et bonne journée, je fais F5 F5 F5 F5 F5 jusqu'à ce que quelqu'un me réponde ! :D
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#5

Message par jguinch »

Gnifrus a écrit :je pense qu'il me faudrait une fonction qui me permette de trouver "Edit14" à partir de du ControlID 1022
Dans ma première réponse, je t'ai donné un lien vers une fonction qui te permettra de faire ça
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#6

Message par Gnifrus »

OK, merci, il est vrai que j'avais zapé cette partie de ta réponse en me précipitant essayer le reste.
Je vais essayer de me baser sur cette fonction en la simplifiant pour obtenir ce que je voudrais.

Je maintiens le statut actif de mon post pour l'instant, et je viendrais le clôturer si je réussi à faire ce que je veux.

Bonne journée,
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#7

Message par jguinch »

Pour simplifier :
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#8

Message par Gnifrus »

Bouuuuuhhh ! :o

Merci jguinch !

Je n'ose même pas te montrer la taille de la fonction que tu m'as donnée en lien dans ta première réponse, une fois simplifiée !
Il restait encore tout plein de choses que j'ai conservées, ne sachant pas à quoi elle servaient !!!

Et dire que je ne prends connaissance de ton message qu'à l'instant !!!

J'essaierai demain ta fonction simplifiée, car si la mienne (enfin, la tienne en un peu raccourcie) fonctionne, c'est une vrai usine à gaz par rapport à ce que je voulais faire !!!!

Un grand merci encore !
Je laisse le topic ouvert, le temps de tester tout ça !

Merci merci merci encore !!!!
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [..] ControlID et ClassnameNN

#9

Message par Gnifrus »

Merci à tous les 2 pour vos réponses !

J'arrive maintenant à faire ce que je voulais !
C'est génial !

Bonne continuation et certainement à très bientôt ! :wink:
Répondre