Message à une fenêtre

Le
Gloops
Bonjour tout le monde,

Si je veux faire apparaître un fichier texte dans le bloc notes, je peu=
x
ouvrir un processus pour ça :

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

et effectivement ça marche.

Si maintenant je veux faire apparaître la fin du fichier, est-ce que je=

suis toujours sur la bonne piste ?
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.

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 ?

Accessoirement le SendMessage, on le trouve où ? L'explorateur d'objets=

me le trouve dans XmlQueryRuntime, j'ai un doute. Dans l'aide on trouve
une référence à WindowsCEForms, n'est-ce pas réservé à certai=
ns terminaux ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Luc M.
Le #19396611
> 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.
Gloops
Le #19397731
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.
Gloops
Le #19397721
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é



Publicité
Poster une réponse
Anonyme