Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1577 connectés 

 


Dernière réponse
Sujet : [C++] Obtention du contenu de la fenêtre active
Drums Merci. Bon d'après ce qu'on m'a dit jusqu'à présent, le pb est que le ctrl de chaque fenêtre est différent suivant l'appli et que donc il faudra faire un cas particulier pour chaque appli (word, etc.)
 
Pour ce qui est du pb de ne pas choper la propre fenêtre du pg comme fenêtre active, je pense qu'il suffit d'en rendre uneautre active et de passer par un thread avec un timer qui testera régulièrement la fenêtre active en tâche de fond.
 
Bon je vais voir...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Drums Merci. Bon d'après ce qu'on m'a dit jusqu'à présent, le pb est que le ctrl de chaque fenêtre est différent suivant l'appli et que donc il faudra faire un cas particulier pour chaque appli (word, etc.)
 
Pour ce qui est du pb de ne pas choper la propre fenêtre du pg comme fenêtre active, je pense qu'il suffit d'en rendre uneautre active et de passer par un thread avec un timer qui testera régulièrement la fenêtre active en tâche de fond.
 
Bon je vais voir...
verdy_p Si j'ai bien compris, il s'agit de trouver un programme qui espionne tout ce que tape ou lit un utilisateur...
Pour trapper le clavier, c'est pas compliqué: un Windows Hook que tu ajoute à la fenêtre que tu veux étudier.
Pour connaitre la fenêtre active, Windows te l'indique par une fonction de base.
Par contre pour savoir ce que lit l'utilisateur, tout dépends de la méthode d'affichage employée.
En pratique on ne se complique pas autant, et on a juste beoin de faire un snapshot (avec une solution du genre de Norton pcAnywhere, qui permet de prendre le contrôle d'un PC à distance ou surveiller ce qui s'y passe...)
xilebo Chaque controle sous windows ( zone de texte ,liste ,arbre , bouton , etc ...) possède un handle(ce que tu appelle le pointeur) PUBLIC à toutes les applications. C'est avec ce handle et quelques fonctions windows ( SetWindoText , etc ...) que l'on peut manipuler les fenetres. Ainsi , si tu arrives à récupérer le handle de word ou notepad ( enfin je veux dire le handle de la zone de texte puisque c'est ca qui t'interesse), tu peux, par le biais des fonctions win32, manipuler à volonté ces fenetres , tu peux les redimensionner , les cacher, changer les propriétés ( ex : le controle qui sert à taper un mot de passe et qui fait apparaitre des '*'  à la place de ce qu'on tape , bah la plupart du temps c'est une editbox , il suffit de récupérer son handle et de changer la propriété password !) .
 
Le plus "dur" , c'est de récupérer ce handle. Tu peux tres facilement en utilisant le programme spy++ fourni avec visual studio mais c'est une opération manuelle. Sinon , il existe des fonctions windows du genre GetWindowFromPoint() qui permet de retourner le handle de la fenetre sous le pointeur de souris.
 
Malheureusement, la routine qui permettra de faire ca sera ecrite dans un programme, et cette fonction ne fonctionnera que si ce programme est actif, autrement dit, tu ne pourrais t'en servir que si ton programme avait la main ( pas interessant puisque tu veux le handle du controle actif).
 
Neanmoins, il existe un moyen d'avoir un programme en tache de fond toujours actif mais actuellement je ne sais pas comment faire . D'ailleurs si quelqu'un sait ce serait bien de dire comment faire !! ( ca doit pas etre bien dur, le tout c'est que l'application doit récupérer les messages souris meme si elle n'est pas active  genre le message WM_NCMOUSEMOVE mais chui pas sur que c'est celui la !).
Flying Heu à mon avis il faut récupérer un pointeur sur le controle en question mais ca doit pas être évident.
J'ai déjà vu un exemple d'un programme qui écrivait dans le notepad grace à un pointeur sur le controle d'édition du notepad ...
Il y a peut être une autre solution moins barge :))
 
Flying

 

[edit]--Message édité par Flying--[/edit]

Drums Je voudrais faire un exe qui récupère périodiquement le contenu texte de la fenêtre active, que ce soit une fenêtre Word, notepad, excel, IE, etc. Savez-vous comment faire ça ? Je suis bon en C++ mais je débute en Windows. Faut-il regarder du côté des MFC ou du Windows SDK ?
 
Merci d'avanc

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)