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
Version imprimable
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 ...
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:
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
=(