XL 2016 Quoi de moins simple que de déterminer le RECT de la barre des tâches en multi-moniteurs ? Fichier pour test...

Dudu2

XLDnaute Barbatruc
Bonjour,

La barre des tâches en multi-moniteurs, je ne sais pas bien sur quel(s) moniteur(s) elle se trouve ni ou exactement ni ce qu'elle contient. Y a des tas d'options.

Ici j'aimerais seulement considérer sa position en moniteur et pour ça j'ai 3 options à vérifier en multi-moniteurs avec le fichier de test ci-joint.

XLDNautes multi-monitoristes, pourriez-vous SVP utiliser le fichier joint et pour chacun de vos moniteurs indiquer quels sont parmi les 3 options, les résultats valides de position de la barre des tâches. Avec screenshots joints si possible.

Merci par avance.
 

Pièces jointes

  • TaskBar RECT Multi-Moniteurs.xlsm
    102.4 KB · Affichages: 2
Dernière édition:

p'tit vieux

XLDnaute Occasionnel
Voilà voilà
Y a qu'à demander
1734881050813.png

Je présume que tu parles de la barre de tâche d'Excel?
Présume-je bien ou est celle de Windows? 😁
Quel est ton objectif?
SUR LE MONITEUR #2 chez moi les 3 options sont bonnes.
Par contre sur le #1 faut que je contrôle le Right
1734881737018.png

Après control, mon hesitation est du au fait que le #1 est à ma droite et le #2 est à ma gauche. 😊
Bref. Sur le #1 La position maxi est bien en 3840 (Somme des largeurs des 2 écrans)
 
Dernière édition:

p'tit vieux

XLDnaute Occasionnel
Je crois que j'avais fais un truc comme ça en VB6 il y a .. 😨 … pour positionner des OCX que l'équipe de l'époque avait écris.
Je pense même que j'avais commencé à l'adapter pour Excel pour récupérer les coordonnées de cellules "à la volée" et le contenu de celle-ci.
Je recherche si je retrouve le code.
 

Dudu2

XLDnaute Barbatruc
Ce que je constate c'est que le SHAppBarMessage et la "Shell_TrayWnd" Window donnent toujours le RECT de la TaskBar sur le moniteur principal si elle est présente sur les 2 moniteurs. Ce qui est assez normal puisque ces fonctions n'ont pas de notion de moniteur.

Et si tu déplaces la fenêtre Excel dans le Moniteur #1, tu obtiens les même résultats ?
 

p'tit vieux

XLDnaute Occasionnel
Peux tu éclairer ma lanterne sur la finalité de ta recherche?
Le positionnement / repositionnement d'un UserForm dans la feuille Excel?
Si c'est le cas, juste une vague idée ...
Ne serait-il pas envisageable, voire plus simple, de la positionner en position relative par rapport au rectangle de ta feuille Excel.
C'est juste une idée qui te permettrai de ne pas avoir à tenir compte de la barre de tache.
Et puis en plus ainsi tu te fiches si c'est l'écran # ou #2.
 

Dudu2

XLDnaute Barbatruc
J'essaie tout simplement de savoir où se trouve la barre des tâches dans un moniteur désigné par son numéro ou dans le moniteur où se trouve la fenêtre Excel (ma question du post #8) et quelles fonctions permettent d'obtenir le résultat vu que j'en ai 3 dont 1 fonctionnera et dont les 2 autres fonctionnent dans des conditions à déterminer. Je n'ai pas d'autre objectif incluant un UserForm ou autre chose.
 

p'tit vieux

XLDnaute Occasionnel
La classe correspondant à la barre de tache se nomme "Shell_TrayWnd".
1734890136857.png

Elle contient différentes sous-fenêtres que tu peux voir là haut.
Ces sous-classes/fenêtres peuvent elles même contenir d'autres classes/fenêtres.
Donc est ce qu'en récupérant le handle de "Shell_TrayWnd" tu pourrais avoir les infos que tu cherches.

Là je recherche mon vieux code.
 

patricktoulon

XLDnaute Barbatruc
juste en passant comme ca
puisque tu travail sur x moniteurs
en faisant la soustraction rcmonitor-rcwork de chaque moniteur tu devrait avoir ton rectangle et par la même occasion ça te donne une indication sur sa position
j'irais
même jusqu’à dire qu'il est presque inutile d'aller chercher la shell_trayhwnd
d'une pierre tu fait deux coups ;)
et le must c'est qu'il n'y a pas d'erreur possible elle y est elle y est pas on est en mode extented on y est pas
tout ça part aux oubliettes

je disais ça juste en passant
 

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 678
dernier inscrit
arno12345678