Page 1 sur 1

[R] ControlID et ClassnameNN

Posté : lun. 22 sept. 2014 19:59
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.

Re: [..] ControlID et ClassnameNN

Posté : lun. 22 sept. 2014 20:30
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

Re: [..] ControlID et ClassnameNN

Posté : lun. 22 sept. 2014 23:04
par mikell
[ID:1022] ne bouge pas ?

Code : Tout sélectionner

ControlSetText("Outil de lancement de ", "", 1022, "blabla")

Re: [..] ControlID et ClassnameNN

Posté : mar. 23 sept. 2014 08:58
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

Re: [..] ControlID et ClassnameNN

Posté : mar. 23 sept. 2014 10:15
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

Re: [..] ControlID et ClassnameNN

Posté : mar. 23 sept. 2014 11:35
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,

Re: [..] ControlID et ClassnameNN

Posté : mar. 23 sept. 2014 12:29
par jguinch
Pour simplifier :
► Afficher le texte

Re: [..] ControlID et ClassnameNN

Posté : mar. 23 sept. 2014 18:36
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 !!!!

Re: [..] ControlID et ClassnameNN

Posté : mer. 24 sept. 2014 23:22
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: