OVH Cloud OVH Cloud

Captures d'écran

5 réponses
Avatar
Julian PETIET
Bonjour,

Les logiciels de capture d'écran permettent d'obtenir une copie :
1. de tout l'écran
2. d'une zone rectangulaire de coordonnées définies par l'utilisateur
3. de la fenêtre de l'application active
4. de la fenêtre d'une application même inactive
5. d'une barre d'outils, d'un menu, d'une barre de défilement...
6. d'un menu, d'un outil, d'une barre de défilement, d'une icône (pour les
meilleurs)

Mes questions "Jusqu'où peut-on pousser cette "subtilité" ?" :
1. Peut-on obtenir une image de tout objet pointé ou cliqué par la souris ?
2. Est-il possible d'accéder à un niveau de détail encore plus subtil :
- coordonnées à l'écran, dimensions,
- type d'objet (bouton radio, liste déroulante, ...)
- intitulé
- toutes autres propriétés des objets en environnements Windows ?

3. Quel langage me conseilleriez-vous d'utiliser pour développer une
application qui pourrait accéder à la structure d'applications tierces
chargées en mémoire ?

Merci pour vos futures réponses.

--
Julian PETIET

5 réponses

Avatar
Christian ASTOR
Julian PETIET wrote:

Mes questions "Jusqu'où peut-on pousser cette "subtilité" ?" :
1. Peut-on obtenir une image de tout objet pointé ou cliqué par la souris ?
2. Est-il possible d'accéder à un niveau de détail encore plus subtil :



Tout est à peu près la même chose à partir du hWnd : BitBlt() ,
WM_PRINT, LVM_* pour icônes de ListViews...
Des progs comme SnagIt sont assez simples à réaliser.

3. Quel langage me conseilleriez-vous d'utiliser pour développer une
application qui pourrait accéder à la structure d'applications tierces
chargées en mémoire ?



"structure d'applications" ?
Si on veut savoir ce que fait une appli, on fait des API hooks par ex...
Avatar
Julian PETIET
Christian ASTOR a écrit :

Mes questions "Jusqu'où peut-on pousser cette "subtilité" ?" :
1. Peut-on obtenir une image de tout objet pointé ou cliqué par la souris
?
2. Est-il possible d'accéder à un niveau de détail encore plus subtil :





Tout est à peu près la même chose à partir du hWnd : BitBlt() , WM_PRINT,
LVM_* pour icônes de ListViews...
Des progs comme SnagIt sont assez simples à réaliser.



Merci pour ces informations Christian. J'ai pu trouver quelques informations
sur Bilblt et WM_PRINT que je m'apprête à étudier. Je n'ai rien trouvé sur
LVM_*.

3. Quel langage me conseilleriez-vous d'utiliser pour développer une
application qui pourrait accéder à la structure d'applications tierces
chargées en mémoire ?





"structure d'applications" ?
Si on veut savoir ce que fait une appli, on fait des API hooks par ex...



Ok, les hooks semblent être *le* moyen.
Que penses-tu du Windows Hooking SDK de chez validtech ?
Peut-il m'être d'une bonne utilité pour m'approcher d'un logiciel comme
SnagIt ?

Soit dit en passant SnagIt est très bien fait, mais il ne me permet pas, par
exemple, d'accéder à un bouton radio dans une boîte de dialogue ... ce qui
est indispensable pour moi.
Est-il possible de faire mieux et d'accéder à "tout" ?

Julian
Avatar
Christian ASTOR
Julian PETIET wrote:

Soit dit en passant SnagIt est très bien fait, mais il ne me permet pas, par
exemple, d'accéder à un bouton radio dans une boîte de dialogue ... ce qui
est indispensable pour moi.



Parce qu'il utilise juste WindowFromPoint(), sans chercher à voir si
d'autres fenêtres ont les coordonnées comprises ds celle sélectionnée
(cas des Group Boxes, suivies par des radio boutons), comme le fait
Spy++ par ex.
Avatar
Julian PETIET
Christian ASTOR a écrit :

Soit dit en passant SnagIt est très bien fait, mais il ne me permet pas,
par exemple, d'accéder à un bouton radio dans une boîte de dialogue ...
ce qui est indispensable pour moi.





Parce qu'il utilise juste WindowFromPoint(), sans chercher à voir si
d'autres fenêtres ont les coordonnées comprises ds celle sélectionnée (cas
des Group Boxes, suivies par des radio boutons), comme le fait Spy++ par
ex.



Je télécharge Spy++ pour visualiser ce que tu veux dire.
Bien que le fait de m'en servir ne m'expliquera pas comment il s'y prend sur
le plan purement programmation. (cela fait parti des connaissances qu'il me
faut aquérir).
Si juste WindowFromPoint() ne suffit pas, que faut-il utiliser d'autre ?

Julian
Avatar
Christian ASTOR
Julian PETIET wrote:

Je télécharge Spy++ pour visualiser ce que tu veux dire.
Bien que le fait de m'en servir ne m'expliquera pas comment il s'y prend sur
le plan purement programmation. (cela fait parti des connaissances qu'il me
faut aquérir).
Si juste WindowFromPoint() ne suffit pas, que faut-il utiliser d'autre ?



Ce que je disais : énumérations des siblings, comparaison des
GetWindowRect() et si GetCursorPos()-PtInRect(), on sélectionne.