bonjour,
je veux trouver un moyen pour envoyer des caractères dans un bloc note.
je dois utiliser la fonction sendmessage mais les docs sur celle ci sont assez floues...
quelques conseils seraient les bienvenus!
merci
bonjour,
je veux trouver un moyen pour envoyer des caractères dans un bloc note.
je dois utiliser la fonction sendmessage mais les docs sur celle ci sont assez floues...
quelques conseils seraient les bienvenus!
merci
essaye WM_CHAR ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
Bonjour,
Je t'ai fait un bout de code qui permet d'envoyer une chaine à Notepad :
La seule difficulté est de trouver le handle de fenêtre à qui envoyer la chaine : il faut trouver le handle de la fenêtre Edit appartenant à NotePad.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 procedure TForm1.Button1Click(Sender: TObject); begin SendString('ça marche !'); end; // Retourne le handle de Edit de NotePad : Function TForm1.GetNotePadHandle : THandle; var aHandle :THandle; P : Array[0..256] of Char; Const BlocNote = 'Sans titre - Bloc-notes'; // Titre de la fenêtre NotePad EditClass = 'Edit'; // Classe de la fenêtre edit de NotePad begin // Recherche de la fenêtre BlocNote aHandle := FindWindow(0,Pchar(BlocNote)); if aHandle > 0 then begin // Recherche de la fenêtre Edit de NotePad (Fenêtre enfant): aHandle := GetWindow(aHandle,GW_CHILD); Repeat GetClassName(aHandle,P, Sizeof(P)); if String(P) <> EditClass then aHandle := GetWindow(aHandle, GW_HWNDNEXT); Until String(P) = EditClass; end; Result := aHandle; end; // Envoi de la chaine à NotePad procedure TForm1.SendString(s : String); var i : integer; Hwnd : THandle; begin Hwnd := GetNotePadHandle; If Hwnd > 0 then begin i := 1; while i <= length(S) do begin PostMessage(Hwnd,WM_CHAR,Ord(S[i]),0); inc(i); end; end; end;
En espérant que ça te servira !
Eb.
Voici quelques fichiers qui devraient te permettre d'avancer
merci pour ces conseils
Mon problème n'est pas tout à fait d'écrire dans un notepad.. il me faut écrire dans n'importe quel champs détenant le focus.
Comment retrouver ce focus?
=)
++
Quelle est l'application cible si ce n'est pas le notepad.
Est-ce une appli que tu as développé ou dont tu as les sources ?
Je dois pouvoir écrire partout ou peut être le focus : sur google, notepad ... etc partout.
je galère pour récupérer le focus actif puisque au moment ou je clique sur mon application, l'endroit ou je dois écrire n'est plus actif...
C'est un problème de logique... et je ne connait pas assez les fonctions...
De l'aide svp
=(
Partager