begin process at 2012 02 11 10:40:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Pilotage total appli via API au travers de Windev


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pilotage total appli via API au travers de Windev

vendredi 23 mars 2007 à 17:05:22 | Pilotage total appli via API au travers de Windev

croquibus

Hello !!!

Voila, ma mission est d'automatiser entièrement le fonctionnement d'une application.
Je programme sous Windev et j'utilise l'appel d'API windows pour gérer un certain nombres d'actions.
Sur une fenêtre fille, je parviens bien à ouvrir une combo, à sélectionner une ligne précise parmi les différents éléments et la combo se referme bien sur mon élément sélectionné.
Maintenant, l'élément que j'ai sélectionné dans cette combo reste sur fond bleu comme si il avait le focus et donc ensuite je ne peu plus cliquer sur le bouton de validation de cette même fenêtre comme si je n'avais plus la main.
Si dans mon programme j'ignore le passage sur cette combo, le clic sur mon bouton de validation fonctionne.
Qu'elle est l'api qui me libèreait de cette impasse ?

Merci
 
vendredi 23 mars 2007 à 17:46:59 | Re : Pilotage total appli via API au travers de Windev

yann_lo_san

Réponse acceptée !

As tu essayé de redonner le focus au boutton de validation ?

API("USER32", "SendMessageA", hWndBtnOK, WM_SETFOCUS,  
hWndCombo, 0)

samedi 24 mars 2007 à 00:35:44 | Re : Pilotage total appli via API au travers de Windev

BruNews

Administrateur CodeS-SourceS
Autre méthode pour focus sur un controle:
SendMessage(hdlg, WM_NEXTDLGCTL, (WPARAM) hctrl, 1);
SendMessage(hdlg, WM_NEXTDLGCTL, 0, 0); // next ctrl
SendMessage(hdlg, WM_NEXTDLGCTL, 1, 0); // prev ctrl

ciao...
BruNews, MVP VC++
lundi 26 mars 2007 à 09:51:00 | Re : Pilotage total appli via API au travers de Windev

croquibus

Ok, merci pour cette réponse qui me va apparement.
Mais en tant que débutant comment faut-il que je renseigne les variables HwndBtnOk, WM_SetFocus et HwndCombo ???
Sous windev, ces valeurs sont de type entière.
Faut-il que j'indique le Handle de chacun des objets concernés de ma fenêtre dans ces variables ??
Si oui, comment récupérer les Handle d'un objet précis sur une fenêtre afin de pouvoir intervenir dessus ?

Merci encore et désolé pour ce départ un peu cahotique.

Fred. 
lundi 26 mars 2007 à 18:20:48 | Re : Pilotage total appli via API au travers de Windev

BruNews

Administrateur CodeS-SourceS
hcontrol = GetDlgItem(hparent, controlID);

ciao...
BruNews, MVP VC++
lundi 26 mars 2007 à 19:53:39 | Re : Pilotage total appli via API au travers de Windev

patrick2023

Réponse acceptée !
Bonjour croquibus,
bonjour les autres,

J'ai également l'intention de piloter une apllication en Windev. J'en suis au début. Je viens de récupérer les handle de la fenetre. Je ne sais pas encore comment distinguer les objets combos. Et encore moins de trouver leur contenu.
Une aide de ta part me serait précieuse.
 Peux tu m'envoyer un exemple.
Merci.
mardi 27 mars 2007 à 09:21:16 | Re : Pilotage total appli via API au travers de Windev

croquibus

Salut Patrick,
Ok pour te retransmettre mon savoir mais comme dirait Ségolène (donnant donnant)
C'est à dire que si tu as des infos, merci de me les retransmettre à ton tour.

Bon, je ne sais pas si il y a d'autre méthode mais pour l'instant cela fonctionne.
Moi je lance une appli non Windev avec DDELANCE et ensuite :

//----------------------------------------------------------------------------------------------------------
// Comment tu dois déclarer les variables pour piloter la souris
//----------------------------------------------------------------------------------------------------------

sz

LEFTDOWN est une chaîne ASCIIZ sur 50

sz

LEFTUP est une chaîne ASCIIZ sur 50

sz

ABSOLUTE est une chaîne ASCIIZ sur 50

n

LDOWN est un entier système

n

LUP est un entier système

n

ABSO est un entier système

//---------------------------------------------------------------------------------------------------------------
// Comment tu dois renseigner les variables pour clic enfoncé ou pas
//---------------------------------------------------------------------------------------------------------------

sz

LEFTDOWN = "H2"

n

LDOWN = & szLEFTDOWN

sz

LEFTUP = "H4"

n

LUP = & szLEFTUP

sz

ABSOLUTE = "H8000"

n

ABSO = & szABSOLUTE

//------------------------------------------------------------------------------------------------------
// Et là, tu balades ta souris où tu veux
//------------------------------------------------------------------------------------------------------

X

= 20// Vers la droite

Y

= 35// Vers le bas

b

RetourneFonction = API("USER32","SetCursorPos",X,Y)

b

RetourneFonction = API("USER32","mouse_event",nLDOWN + nABSO,X,Y,0,0)

b

RetourneFonction = API("USER32","mouse_event",nLUP + nABSO,X,Y,0,0)


Maintenant, je recherche comment avoir la main sur chaque controle de la fenêtre active, je ne suis toujours pas parvenu à le faire.

Chao Patrick.

mardi 27 mars 2007 à 15:35:54 | Re : Pilotage total appli via API au travers de Windev

croquibus

Bon, j'avance à pas de souris.
Ok pour la reprise de focus sur mon bonton de validation en sortant de ma combo.

Merci encore

Mais n'y a t'il pas de différence entre une fenêtre appartenant au monde de Windows comme c'était le cas pour cet première fenêtre et une fenêtre appartenant à un programme étranger à windows.

Car voila, mon premier travail était d'ouvrir et de sélectionner automatiquement une imprimante par défaut dans le monde windows. Ca c'est OK

Mais je suis maintenant dans une fenêtre fille appartenant à un programme non windows, sur laquelle je dois également sélectionner un élément dans une combo et là ????
Il ne se passe rien alors que je viens de le faire juste avant ????????

Je parviens bien à récupérer le handle et le nom de la fenêtre mère de l'application mais je ne parviens pas à connaitre le handle de cet petite fenêtre qui se trouve au centre de mon écran et de ce fait, je ne parviens pas à avoir la main dessus.
Une fois cette petite fenêtre affiché, j'ai beau envoyer des GetForegroundWindow, GetActiveWindows, C'est toujours le handle de la fenêtre mère qui apparait.

La question c'est, comment faire pour récuperer le handle de ce fichu petit bout de fenêtre ??
Car j'imagine que lorsque j'aurai son handle, que tout sera beaucoup plus facile pour moi.

Merci. 

 




mardi 27 mars 2007 à 18:08:42 | Re : Pilotage total appli via API au travers de Windev

yann_lo_san

Que dois tu imprimer ?
Il vaut mieux utiliser les fonctions d'impression interne à windev.
Sinon je ne vois pas ce que tu veux faire exactement...

mardi 27 mars 2007 à 18:28:08 | Re : Pilotage total appli via API au travers de Windev

yann_lo_san

Des apis utiles dans le cas ou tu persisterais dans ce sens :

Il y a GetWindow avec param fenètre mère et param GW_CHILD.

Sinon tu peux essayer FindWindowExavec NULL pour le param firstChildWindow, elle te donnera la premiere fille de la topWindow passée.

Sinon, y'a EnumChildWindows, mais il faut fournir une fonction callback en plus.

Tu as aussi ChildWindowFromPoint qui te donne le handle grace aux coordonnées d'un point sur l'écran et une fenetre mère spécifiée.


1 2

Cette discussion est classée dans : combo, windev, api, total, pilotage


Répondre à ce message

Sujets en rapport avec ce message

[API | C++] Combo Box [ par keenrather ] Bonjour à tous,Alors voila je travaille sous Visual C++ 6 et j'ai crée une boite de dialogue avec une combo box dans mes ressources.Et mon problème c' [API Windows] Combo box et CBN_SELCHANGE [ par lucelabrute ] Bonjour, Je n'arrive pas ç utiliser correctement le message CBN_SELCHANGE. Alors voila ce que je fais: dans le WM_COMMAND: case CBN_SELCHANGE: /* tra [API windows] Redimmensionner une fenêtre [ par lucelabrute ] Bonjour, j'aimerais qu'aprés selection dans une combo box, la fenêtre s'agrandisse ou se reduise automatiquement, j'ai lu un peu et j'ai trouvé SetWin Combo avec boite à outils HS sous Visual 2008 [ par brunomoraut ] Lorsque je crée un combo depuis la boite à outils, et que je le rempli dans la méthode OnInitialUpdate() de l'objet boite de dialogue, héritée de CDia probleme avec une fenetre en API [ par guyver88 ] GUYVER88[^^confus2] slt!!tout le monde!! j'ai un problem avec ma fenetr!c un jeu que j'ai creé avec API, il marche bien lorsqu'on le lanc mais apres q aide en api Wndows [ par yahyamr ] bonjour je suis un étudiant en classe d'informatique L2 mon prof. m'a demander de faire un projet en api Windows en appliquant le langage C. mon pr aide svp api windows [ par yahyamr ] bonjour je suis un étudiant et je faire en projet en api Windows en appliquant le langage C. mon projet est la gestion de repertoire telephone je


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales