begin process at 2012 05 30 13:35:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

Texte selectionné sur une autre fenêtre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Texte selectionné sur une autre fenêtre

jeudi 12 mai 2005 à 20:15:51 | Texte selectionné sur une autre fenêtre

sebseb42

Bonjour a tous,

Je voudrais savoir s'il est possible de recuperer du texte selectionner dans une autre fenetre, par exemple j'ouvre le notepad, je tappe bonjour et je selectionne "jour", je voudrais pouvoir recuperer ce texte dans mon application.

C'est un peu primaire comme question mais bon, si vous avez une methode, meme si il faut passer part du code natif en C, n'hesitez, ca me fait meme pas peur  d'ailleur c'est sur cette base que je suis partit, mais j'ai encore quelques soucis.

Je vais poser la meme question sur le sites de code-sources C/C++

Merci pour votre aide, a++

jeudi 12 mai 2005 à 20:17:22 | Re : Texte selectionné sur une autre fenêtre

sebseb42

désolé pour la phrase qui parle du code natif en C, c'est tres con de dire ca ici, c'est parcequ'a la base c'est une question que j'ai poser sur csharpfr, et j'ai oublier de modifier, desoler

jeudi 12 mai 2005 à 20:43:50 | Re : Texte selectionné sur une autre fenêtre

vecchio56

Administrateur CodeS-SourceS
Il faut d'abord que tu retrouve la fenêtre en question, par exemple avec FinWindow("Notepad", 0) dans ton exemple, puis récupérer l'edit correspondant avec EnumChildWindows. Tu obtiens donc l'handle d'un edit, tu peux alors récupérer la sélection en envoyant à l'edit le message EM_GETSELTEXT
jeudi 12 mai 2005 à 22:49:26 | Re : Texte selectionné sur une autre fenêtre

sebseb42

ahh, voila le truc que je cherchais, EM_GETSELTEXT, j'etais pas vraiment sure mais mnt je vais essayer ca...

cependant, j'enumere deja toutes les fenetres, et ensuite j'enumere les childwindow (les sous objets) mais comment savoir le childwindow (parmis tout ceux enumeré) en question est un edit ? et aussi il y a plusieurs sorte de edit non ? et puis par exemple du texte sur une page html n'est pas du texte contenu dans un edit, si ?

voila, le debut etais bien, mais me faut plus de details, merci :)

jeudi 12 mai 2005 à 23:04:52 | Re : Texte selectionné sur une autre fenêtre

sebseb42

selon MSDN :

"The EM_GETSELTEXT message retrieves the currently selected text in a rich edit control"

et j'ai tester, ca trouve quedal sur le notepad. j'ai tester en mode bourrin, j'ai fait ceci dans la EnumChildProc :

-------------------------------------------------------------
char *seltext;

seltext = (char*)SendMessage(hwnd, EM_GETSELTEXT, 0, 0);
if (seltext != NULL)
    printf("seltext : %s\n", seltext);
-------------------------------------------------------------

et ca n'affiche rien, mais par contre ca fait planter certaines des applications auquels j'ai demander de recup le texte selectionné sur ces window enfants  (Visual Studio plante directe)

y aurait pas un WM_GETSELTEXT ou un truc du genre ?

jeudi 12 mai 2005 à 23:20:52 | Re : Texte selectionné sur une autre fenêtre

sebseb42

bon ecoutez pas le petit monsieur la, il est fatigué

nan en fait j'ai re-ecrit les appel a SendMessage, il sont desormet correct, mais ca fonctionne toujours pas :S

--------------------------------------------
char seltext[4096];

memset(seltext, 0, sizeof(seltext));
SendMessage(hwnd, EM_GETSELTEXT, 0, seltext);
printf("+ seltext : %s\n", seltext);
--------------------------------------------

voila, mais ca fonctionne toujours pas, mon buffer est toujours vide, meme si je selectionne du texte dans notepad ou dans un explorer

jeudi 12 mai 2005 à 23:21:26 | Re : Texte selectionné sur une autre fenêtre

vecchio56

Administrateur CodeS-SourceS
Tu n'a pas bien la MSDN: quand tu envoies EM_GETSETTEXT, tu dois fournir un buffer dans lParam, la valeur de retour de SendMessage est seulement le nombre de caractères copiés, tu ne t'en sers pas forcément:

char setText[TAILLE_MAX];
SendMessage(hwnd, EM_GETSELTEXT, 0, (LPARAM)selText);

Pour ce qui est de savoir si une fenêtre est un edit, tu regarde son nom de classe avec GetClassName:

char className[32];
GetClassName(hwnd, className, 32);
if(!lstrcmpi(className, "EDIT"))
{
// C'est un edit
}

La méthode que je donne ne marche que pour les EDIT. Pour une page HTML par exemple, je pense que c'est tout simplement impossible. Comment pourrait-on connaitre le texte séléctionné dans une fenêtre dont on ignore tout, et la manière dont elle a été créée. EM_GETSELTEXT ne marchera comme son nom l'indique que pour des EDIT (ou les RichEdit), et pour le reste tu va avoir de grosses difficultés.
jeudi 12 mai 2005 à 23:22:20 | Re : Texte selectionné sur une autre fenêtre

vecchio56

Administrateur CodeS-SourceS
Désolé j'avais pas eu le temps de voir ton dernier message
jeudi 12 mai 2005 à 23:30:48 | Re : Texte selectionné sur une autre fenêtre

sebseb42

pas grave... mais de toute facon des personnes l'ont deja fait, c'est donc que c'est faisable...

jeudi 12 mai 2005 à 23:35:53 | Re : Texte selectionné sur une autre fenêtre

vecchio56

Administrateur CodeS-SourceS
Mais comment veux tu par exemple connaitre le texte séléctionné par un personne dans une fenêtre de Mozilla. Même si tu sais comment faire, il faut que tu prévoie une solution pour chaque application (beaucoup d'application utilisent des types de fenêtres qu'elles définissent elles même et qui ne sont pas documentées)

1 2

Cette discussion est classée dans : texte, recuperer, selectionné, question, fenêtre


Répondre à ce message

Sujets en rapport avec ce message

Comment afficher du texte dans un fenêtre OpenGl?? [ par mastave ] Comment afficher du texte dans un fenêtre OpenGl??Et avec un police spéciale?? Type de fenêtre + Gestion des touches + Réduction de la fenêtre [ par CyberP ] 1.Lorsque l'on créé un élément pour son programme, comme une barre de status ou une zone de texte éditable, on utilise une fonction avec le type d'élé recuperation de donnees d un fichier texte. [ par coyotedef ] j'aimerai recuperer des donnees presente dans fichier texte et les classer dans un tableau. ces donnees sont toutes du meme format mais se trouve au m Recuperer le texte d'une combobox [ par tweet ] Salut, Je gere un petit prog sous visual C++ et je n'arrive pas à récupérer le texte d'un combobox. J'ai associe au combo une variable de type CString recuperer texte d'une ListView [ par glipper ] Lol bonjour, (et vi encore moi, désolé :)Maintenant, j'essaie de récuperer le nom de l'item selectionné dans ma ListView. J'ai récuperé le numero de l texte - TreeView [ par glipper ] Bonjour,J'ai créé une TreeView, dans laquelle j'y ai inséré des items... et j'essaie de recuperer l'andle de l'item selectionné. J'ai utilisé ceci : H Texte trop long dans une fenêtre SDI. Que faire ? [ par marcel6566 ] J'écris des phrases les une après les autres sur la fenêtre SDI. Certaines de ces phrases ne tiennent pas sur une ligne, car j'utilise une grande tail Comment récupérer du texte dans une fenêtre? [ par tictactouc ] Bonjour, depuis un mois je cherche partout comment récupérer n'importe quel texte écrit par TextOut ou par DrawText dans une fenêtre,Ceci dans le but Récupérer les infos des contrôles [ par Tibabou ] Bonjour/soir,Je ne sais récupérer aucune caractéristique des contrôles que je place sur ma fenêtre. Par exemple, un simple bouton ou un champs de sais Formatage dans le RichEdit [ par Kikx ] Ma question c'est est ce que il y a une methode simple pour formatter le texte d'une editbox ?genre un peu comme des balises HTMLL'idée est la suivant


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales