Fenêtres du numéroteur téléphonique

Le
Gloops
Bonjour tout le monde,

Je cherche à piloter le numéroteur téléphonique (dialer.exe) à =
partir
d'une interface à appeler depuis un répertoire, par exemple dans un t=
ableur.

Il me faut donc détecter les fenêtres correspondantes pour déclench=
er un
chronomètre. FindWindow (par API n'est-ce pas ?) peut très bien me
détecter les fenêtres de la classe #32770, mais il y en a plusieurs :=

"Server Recv Notify Data Win (ConfigFree)" (qui j'imagine appartient à =

une autre application), "Aperçu", "Appel téléphonique - " suivi du =
nom
du correspondant, "État de l'appel". Je pourrais détecter les fenêt=
res
par leur nom (comme j'ai fait sans problème pour une version français=
e),
l'ennui, s'agissant d'une application internationale, est que les
intitulés dépendent de la langue d'installation de Windows.

Y a-t-il un moyen de connaître par programme ces noms de façon à ê=
tre
capable de détecter l'apparition de la fenêtre correspondante ? Ou en=

est-on réduit à compter les numéros de fenêtres pour deviner à =
quelle
phase du traitement on en est ? Et à ce moment là comment savoir si l=
e
numéroteur est déjà ouvert lors de l'appel du programme ? Détecte=
r le
nom de l'exécutable ? Pour sûr si il y avait quelque chose de rationn=
el
pour viser chaque fenêtre à coup sûr ce serait quand même plus co=
mmode.
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
Vincent Poyo
Le #18475621
Bonjour,

Peut être que ceci ce convient ?

Process[] processes = Process.GetProcessesByName("dialer");

dialer étant le nom du process (de l'éxécutable) c'est de la langue

Cordialement,

Vincent.


"Gloops" news:O%
Bonjour tout le monde,

Je cherche à piloter le numéroteur téléphonique (dialer.exe) à partir
d'une interface à appeler depuis un répertoire, par exemple dans un tableur.

Il me faut donc détecter les fenêtres correspondantes pour déclencher un
chronomètre. FindWindow (par API n'est-ce pas ?) peut très bien me
détecter les fenêtres de la classe #32770, mais il y en a plusieurs :
"Server Recv Notify Data Win (ConfigFree)" (qui j'imagine appartient à
une autre application), "Aperçu", "Appel téléphonique - " suivi du nom
du correspondant, "État de l'appel". Je pourrais détecter les fenêtres
par leur nom (comme j'ai fait sans problème pour une version française),
l'ennui, s'agissant d'une application internationale, est que les
intitulés dépendent de la langue d'installation de Windows.

Y a-t-il un moyen de connaître par programme ces noms de façon à être
capable de détecter l'apparition de la fenêtre correspondante ? Ou en
est-on réduit à compter les numéros de fenêtres pour deviner à quelle
phase du traitement on en est ? Et à ce moment là comment savoir si le
numéroteur est déjà ouvert lors de l'appel du programme ? Détecter le
nom de l'exécutable ? Pour sûr si il y avait quelque chose de rationnel
pour viser chaque fenêtre à coup sûr ce serait quand même plus commode.
Gloops
Le #18479171
Bonjour,

Effectivement, ça peut être un point de départ intéressant, surto ut si
après on trouve EnumWindowsByProcess -si en plus les fenêtres arriven t
alors toujours dans le même ordre, à ce moment-là c'est gagné.

Je vais regarder du côté de EnumChildWindows, ce n'est pas forcémen t
aussi direct, mais ça devrait aider.

http://www.pinvoke.net/default.aspx/user32.EnumChildWindows

Ah, d'ailleurs là, on cite EnumWindowsProc, dans les "User-Defined
Types". Quelque chose d'intéressant à aller voir de près, dirait-on .


Merci pour l'idée.


___________________________________________
Vincent Poyo a écrit, le 24/01/2009 21:26 :
Bonjour,

Peut être que ceci ce convient ?

Process[] processes = Process.GetProcessesByName("dialer");

dialer étant le nom du process (de l'éxécutable) c'est de la lang ue

Cordialement,

Vincent.


"Gloops" news:O%
Bonjour tout le monde,

Je cherche à piloter le numéroteur téléphonique (dialer.exe) à partir
d'une interface à appeler depuis un répertoire, par exemple dans un
tableur.

Il me faut donc détecter les fenêtres correspondantes pour déclen cher un
chronomètre. FindWindow (par API n'est-ce pas ?) peut très bien me
détecter les fenêtres de la classe #32770, mais il y en a plusieurs :
"Server Recv Notify Data Win (ConfigFree)" (qui j'imagine appartient à
une autre application), "Aperçu", "Appel téléphonique - " suivi d u nom
du correspondant, "État de l'appel". Je pourrais détecter les fenê tres
par leur nom (comme j'ai fait sans problème pour une version frança ise),
l'ennui, s'agissant d'une application internationale, est que les
intitulés dépendent de la langue d'installation de Windows.

Y a-t-il un moyen de connaître par programme ces noms de façon à être
capable de détecter l'apparition de la fenêtre correspondante ? Ou en
est-on réduit à compter les numéros de fenêtres pour deviner à quelle
phase du traitement on en est ? Et à ce moment là comment savoir si le
numéroteur est déjà ouvert lors de l'appel du programme ? Détec ter le
nom de l'exécutable ? Pour sûr si il y avait quelque chose de ratio nnel
pour viser chaque fenêtre à coup sûr ce serait quand même plus commode.




Vincent Poyo
Le #18479221
Bonjour,

Sinon une solution est d'utiliser AutoIt, qui je trouve est super pour
simuler un utilisateur et donc manipuler une application, lire une valeur,
envoie d'un click, envoie d'une touche, ...

Reste à voir si celà peut être utiliser dans ton projet.

(ps : désolé pour la manière dont je me suis exprimé dans le premier
message, mais je discutais en même temps, et je ne me suis pas relu :-/ )

Vincent.

"Gloops" news:
Bonjour,

Effectivement, ça peut être un point de départ intéressant, surtout si
après on trouve EnumWindowsByProcess -si en plus les fenêtres arrivent
alors toujours dans le même ordre, à ce moment-là c'est gagné.

Je vais regarder du côté de EnumChildWindows, ce n'est pas forcément
aussi direct, mais ça devrait aider.

http://www.pinvoke.net/default.aspx/user32.EnumChildWindows

Ah, d'ailleurs là, on cite EnumWindowsProc, dans les "User-Defined
Types". Quelque chose d'intéressant à aller voir de près, dirait-on.


Merci pour l'idée.


___________________________________________
Vincent Poyo a écrit, le 24/01/2009 21:26 :
Bonjour,

Peut être que ceci ce convient ?

Process[] processes = Process.GetProcessesByName("dialer");

dialer étant le nom du process (de l'éxécutable) c'est de la langue

Cordialement,

Vincent.


"Gloops" news:O%
Bonjour tout le monde,

Je cherche à piloter le numéroteur téléphonique (dialer.exe) à partir
d'une interface à appeler depuis un répertoire, par exemple dans un
tableur.

Il me faut donc détecter les fenêtres correspondantes pour déclencher un
chronomètre. FindWindow (par API n'est-ce pas ?) peut très bien me
détecter les fenêtres de la classe #32770, mais il y en a plusieurs :
"Server Recv Notify Data Win (ConfigFree)" (qui j'imagine appartient à
une autre application), "Aperçu", "Appel téléphonique - " suivi du nom
du correspondant, "État de l'appel". Je pourrais détecter les fenêtres
par leur nom (comme j'ai fait sans problème pour une version française),
l'ennui, s'agissant d'une application internationale, est que les
intitulés dépendent de la langue d'installation de Windows.

Y a-t-il un moyen de connaître par programme ces noms de façon à être
capable de détecter l'apparition de la fenêtre correspondante ? Ou en
est-on réduit à compter les numéros de fenêtres pour deviner à quelle
phase du traitement on en est ? Et à ce moment là comment savoir si le
numéroteur est déjà ouvert lors de l'appel du programme ? Détecter le
nom de l'exécutable ? Pour sûr si il y avait quelque chose de rationnel
pour viser chaque fenêtre à coup sûr ce serait quand même plus commode.




Gloops
Le #18479581
Vincent Poyo a écrit, le 25/01/2009 12:36 :
Bonjour,

Sinon une solution est d'utiliser AutoIt, qui je trouve est super pour
simuler un utilisateur et donc manipuler une application, lire une
valeur, envoie d'un click, envoie d'une touche, ...

Reste à voir si celà peut être utiliser dans ton projet.



Apparemment intéressant, même si ça ne répond pas forcément à la question :)

Je me demande d'ailleurs si les gens pour qui c'est le plus intéressant
sont lecteurs de ce forum, bien qu'on puisse aussi être intéressé e n
tant que prescripteur. Il y a WinBatch, aussi, qui est pas mal.

http://www.winbatch.com/


(ps : désolé pour la manière dont je me suis exprimé dans le pr emier
message, mais je discutais en même temps, et je ne me suis pas relu : -/ )



Ah, tu parles de la fin ?
Boh, j'avais raccroché ...
Publicité
Poster une réponse
Anonyme