[..] Détection d'une icône lors d'un clic gauche souris

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
syla
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 12 sept. 2011 10:55
Status : Hors ligne

[..] Détection d'une icône lors d'un clic gauche souris

#1

Message par syla »

Bonjour,

je souhaiterais pouvoir différencier lorsqu'un clic souris est effectué sur une icône, ou sur un endroit du bureau vide. qu'il soit un raccourci vers un programme quelconque, une image, etc... le but étant de bien différencier avant une action liée à un double clic, si il y a bel et bien un élément icône positionné aux mêmes coordonnées que le pointeur de la souris au moment du clic.

j'ai trouvé comment différencier un clic sur le bureau ou sur une fenêtre quelconque grâce à l'affichage du titre de celle ci, mais là j'avoue être à cours d'idées pour les icônes.

Merci d'avance à ceux qui auraient des idées pouvant m'aider.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Détection d'une icône lors d'un clic gauche souris

#2

Message par mikell »

syla a écrit :... le but étant de bien différencier avant une action liée à un double clic, si il y a bel et bien un élément icône positionné aux mêmes coordonnées que le pointeur de la souris au moment du clic.
Ceci devrait vous aider

Code : Tout sélectionner

#include <GuiListView.au3>

$hDesktop = ControlGetHandle("Program Manager", "", "[CLASS:SysListView32]")
$iCountItems = _GUICtrlListView_GetItemCount($hDesktop)    [color=#008000] ; nombre d'icones[/color]
For $i = 0 To $iCountItems - 1
    [color=#008000]; texte des icones[/color]
    ; $sIconText = _GUICtrlListView_GetItemText($hDesktop, $i)
    [color=#008000]; position des icones ($aPos[0] et $aPos[1])[/color]
    $aPos = _GUICtrlListView_GetItemPosition($hDesktop, $i)
    [color=#008000] ; on peut aussi utiliser $aRect = _GUICtrlListView_GetItemRect($hDesktop, $i)
     ; position du rectangle ($aRect[0], $aRect[1], $aRect[2] et $aRect[3])[/color]
Next
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
syla
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 12 sept. 2011 10:55
Status : Hors ligne

Re: [..] Détection d'une icône lors d'un clic gauche souris

#3

Message par syla »

Merci beaucoup Mikell pour la solution, elle marche super. il y a juste une dernière chose que je voudrais gérer... peut on faire le même test sur une autre fenêtre que le bureau ? je l'ai tenté en remplaçant "Program Manager" par "" pour indiquer la fenêtre active, mais il ne retourne aucun résultat.

Merci encore pour la solution sur le bureau...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Détection d'une icône lors d'un clic gauche souris

#4

Message par mikell »

syla a écrit :peut on faire le même test sur une autre fenêtre que le bureau ?
Bien sûr Image
Le bureau, ce n'est qu'une ListView dans une fenêtre de titre "Program Manager", créée par progman.exe.... l'info est facilement vérifiable avec l'autoitinfotool
Donc il suffit d'utiliser cet outil sur la fenêtre qui t'intéresse pour avoir les références équivalentes du controle ^^
Attention à la syntaxe dans les fonctions Control...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
syla
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 12 sept. 2011 10:55
Status : Hors ligne

Re: [Résolu] Détection d'une icône lors d'un clic gauche sou

#5

Message par syla »

Merci beaucoup pour toutes ces infos.
pour la détection à d'autres endroits que sur le bureau je garde cela pour plus tard, beaucoup de conditions à gérer et peu d'intérêt pour mon programme.
concernant le bureau le problème est donc résolu.

Merci encore à toi Mikell
Répondre