Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Message à une fenêtre

3 réponses
Avatar
Gloops
Bonjour tout le monde,

Si je veux faire appara=EEtre un fichier texte dans le bloc notes, je peu=
x=20
ouvrir un processus pour =E7a :

System.Diagnostics.Process p =3D new System.Diagnostics.Process();
p.StartInfo.Arguments =3D path;
p.StartInfo.FileName =3D "C:\\Windows\\Notepad.exe";
p.Start();

et effectivement =E7a marche.

Si maintenant je veux faire appara=EEtre la fin du fichier, est-ce que je=
=20
suis toujours sur la bonne piste ?
A priori j'ai tendance =E0 chercher le hWnd de la fen=EAtre pour, version=
=20
flemme, la s=E9lectionner et y envoyer un SendKeys, ou, version un peu=20
plus rigoureuse, y envoyer un SendMessage.

Dois-je me baser sur le titre de la fen=EAtre, ou ai-je un moyen sans =E7=
a,=20
de conna=EEtre le hWnd de la fen=EAtre que je viens d'ouvrir ? Et pour me=
=20
baser sur le titre de la fen=EAtre, j'ai tendance =E0 appeler une API.=20
Mauvais r=E9flexe ?

Accessoirement le SendMessage, on le trouve o=F9 ? L'explorateur d'objets=
=20
me le trouve dans XmlQueryRuntime, j'ai un doute. Dans l'aide on trouve=20
une r=E9f=E9rence =E0 WindowsCEForms, n'est-ce pas r=E9serv=E9 =E0 certai=
ns terminaux ?

3 réponses

Avatar
Jean-Luc M.
> A priori j'ai tendance à chercher le hWnd de la fenêtre pour, version flemme,
la sélectionner et y envoyer un SendKeys, ou, version un peu plus rigoureuse,
y envoyer un SendMessage.



Je pense que dnas ton cas, p.Handle contient le handle.

Dois-je me baser sur le titre de la fenêtre, ou ai-je un moyen sans ça, de
connaître le hWnd de la fenêtre que je viens d'ouvrir ? Et pour me baser sur
le titre de la fenêtre, j'ai tendance à appeler une API. Mauvais réflexe ?



Je pencherai plutôt pour un envoi de message gebnre WM_SCROLL , mais je
n'ai pas testé

--
Jean-Luc M.
Avatar
Gloops
Jean-Luc M. a écrit, le 23/05/2009 21:02 :
A priori j'ai tendance à chercher le hWnd de la fenêtre pour, vers ion
flemme, la sélectionner et y envoyer un SendKeys, ou, version un peu
plus rigoureuse, y envoyer un SendMessage.



Je pense que dnas ton cas, p.Handle contient le handle.



Ah, effectivement, voilà qui a au moins le mérite d'être simple, me rci.


Dois-je me baser sur le titre de la fenêtre, ou ai-je un moyen sans
ça, de connaître le hWnd de la fenêtre que je viens d'ouvrir ? E t pour
me baser sur le titre de la fenêtre, j'ai tendance à appeler une A PI.
Mauvais réflexe ?



Je pencherai plutôt pour un envoi de message gebnre WM_SCROLL , mais je
n'ai pas testé




Oui, en fait, dans SendMessage, il y a deux paramètres, si je ne m'abus e
(en fait trois).

Un pour dire à quelle fenêtre on s'adresse, et le reste pour dire que l
message on envoie (et le quantifier). Enfin je dis ça de mémoire, mai s
je ne crois pas délirer trop.

D'accord on va envoyer un message WM_SCROLL, d'ailleurs j'irai voir la
doc pour le troisième argument, mais pour le premier, p.Handle fera bie n
l'affaire.

Donc, je n'ai plus qu'une API à appeler, ce sera SendMessage. Plus
besoin de FindWindow.

Merci bien.
Avatar
Gloops
Ah, il me semblait avoir répondu, tout-à-l'heure, mais je ne vois
toujours pas ma réponse apparaître. Bon, peut-être que je la verrai
demain matin, qui sait.

Effectivement, p.Handle, il n'y a pas plus simple, merci. ça répond
aussi à l'autre question, du coup, le WM_SCROLL, c'est à p.Handle qu' on
l'envoie.

Ah, oui, seulement, le seul souci, c'est que ça n'empêche pas le curs eur
de rester parfaitement immobile, au début du fichier, et que je trouve
que ce n'était pas le but.

J'ai bien déclaré le SendMessage de user32.dll, puis voici le code :

const int WM_SCROLL = 276;
const int SB_BOTTOM = 7;
SendMessage(p.Handle, WM_SCROLL, SB_BOTTOM, 0);

Du coup j'ai aussi essayé avec FindWindow mais ça n'a pas aidé.
Ah au fait comme handle du processus j'ai 4c4, et comme handle de la
fenêtre b1046 - je n'ai donc pas pu vérifier si une fois que ça mar che
ça donne le même résultat avec l'un ou l'autre.
__________________________________________
Jean-Luc M. a écrit, le 23/05/2009 21:02 :
A priori j'ai tendance à chercher le hWnd de la fenêtre pour, vers ion
flemme, la sélectionner et y envoyer un SendKeys, ou, version un peu
plus rigoureuse, y envoyer un SendMessage.



Je pense que dnas ton cas, p.Handle contient le handle.

Dois-je me baser sur le titre de la fenêtre, ou ai-je un moyen sans
ça, de connaître le hWnd de la fenêtre que je viens d'ouvrir ? E t pour
me baser sur le titre de la fenêtre, j'ai tendance à appeler une A PI.
Mauvais réflexe ?



Je pencherai plutôt pour un envoi de message gebnre WM_SCROLL , mais je
n'ai pas testé