PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Fonction API WIndev
Fonction API WIndev
Débuté par AlxLc, 17 mai 2017 14:50 - 14 réponses
Posté le 17 mai 2017 - 14:50
Salut à tous,

J'aimerais faire appel à des fonctions présentes dans une autre application et apparemment je dois utiliser la fonction API.
Le problème c'est que je vois pas comment, notamment avec les DLL.

Pour le moment j'ai développé et généré une petite appli stupide d'agence de voyage, ajout d'un voyage, de personne etc.
Et je suis en train de développé une petite appli ou j'aimerai faire appel à mes "boutons" "fonctions" de l'appli 1, par exemple afficher la page pour ajouter un nouveau voyage ou la page contenant la liste des différents voyages crées.

Voilà j'espère avoir été suffisamment clair, donc si vous pouviez m'aider ça serait cool.
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 17 mai 2017 - 15:17
Coucou,
https://doc.pcsoft.fr/?3014006
https://doc.pcsoft.fr/?3510004

Sa t aide ?

--
Charly CanDo.
Forg en Nouvelle-Zélande ;-) - In üs we trust
Posté le 17 mai 2017 - 15:22
Bonjour,

API est faite pour appeler des fonctions de dll.
Windev ne génère pas de dll
Donc API ne peut pas aire ce que tu décris.

Si tu veux appeler des fonctions d'une appli X depuis une appli Y, il
faut que X "expose" ces fonctions d'une façon ou d'une autre...

Par exemple, elle peut être à l'écoute (evenement) de messages envoyés
par d'autres appli (sendmessage) et réagir en fonction de la valeur du
message.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 5/17/2017 à 6:50 AM, AlxLc a écrit :
Salut à tous,

J'aimerais faire appel à des fonctions présentes dans une autre
application et apparemment je dois utiliser la fonction API.
Le problème c'est que je vois pas comment, notamment avec les DLL.

Pour le moment j'ai développé et généré une petite appli stupide
d'agence de voyage, ajout d'un voyage, de personne etc.
Et je suis en train de développé une petite appli ou j'aimerai faire
appel à mes "boutons" "fonctions" de l'appli 1, par exemple afficher la
page pour ajouter un nouveau voyage ou la page contenant la liste des
différents voyages crées.

Voilà j'espère avoir été suffisamment clair, donc si vous pouviez
m'aider ça serait cool.
Posté le 17 mai 2017 - 15:48
Ok, merci du conseil !

je vais essayer cette méthode.
Membre enregistré
13 messages
Posté le 17 mai 2017 - 16:03
En fait je comprends pas trop le principe d'exposer les fonctions de l'appli X pour Y.
Parce qu'au final cela revient à établir une relation serveur/client, du coup si c'est vers cette méthode que vous m'orientez ça veut dire que je dois utiliser des sockets ?
Posté le 17 mai 2017 - 16:32
Bonjour,

Le 5/17/2017 à 8:03 AM, AlxLc a écrit :
En fait je comprends pas trop le principe d'exposer les fonctions de
l'appli X pour Y.
Parce qu'au final cela revient à établir une relation serveur/client, du
coup si c'est vers cette méthode que vous m'orientez ça veut dire que je
dois utiliser des sockets ?


-DOIS- ? Non.

Tu PEUX utiliser des sockets, tu PEUX utiliser des messages (comme je
l'ai décris précédemment), tu PEUX utiliser une zone de mémoire
partagée, tu PEUX utiliser un fichier partagé, et ainsi de suite...

tu dois exposer les fonctions que tu VEUX/DOIS exposer... C'est ce que
tu décris comme fonctionnement... Ca revient à fournir un SDK/API
spécifique à ton appli.

Pourquoi tu veux faire ça, aucune idée, et comment, c'est à toi de
choisir, il y a plein de moyens

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com
Membre enregistré
13 messages
Posté le 17 mai 2017 - 16:47
Ok merci pour ces renseignements.
En fait je suis en stage, je dois créer une appli windev qui sera une "surcouche" d'une application déjà existante. Du coup, je voulais essayer de comprendre avec deux applications windev pour mieux cerner le sujet.

PS : L' application déjà existante n'est pas modifiable, c'est pour ça que je galère à trouver la méthode adéquate.
Posté le 17 mai 2017 - 17:00
Bonjour,

"surcouche" d'une application déjà existante. Du coup, je voulais
essayer de comprendre avec deux applications windev pour mieux cerner le
sujet.

PS : L' application déjà existante n'est pas modifiable, c'est pour ça
que je galère à trouver la méthode adéquate.


Si l'application n'est pas modifiable, elle ne peut pas exposer de
fonctions, et je ne vois pas bien comment tu va pouvoir faire ca...

Ou alors, il faut essayer de simuler les clic souris aux bonnes
coordonnées (et donc les connaitre) en utilisant des api systèmes.

Ca peut fonctionner si on ne parle que d'une fenêtre, mais s'il en a
plusieurs, ca va vite devenir une usine à gaz...

Je ne sais pas pourquoi on te demande de faire un truc pareil, mais ca
va pas être facile

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com
Membre enregistré
1 message
Posté le 18 mai 2017 - 02:21
Slt à Tous, je viens de m'enregistrer sur ce site , SVP j'aimerais que quelqu'un m'aide à avoir les bases avec WINDEV. Cela fait maintenant 1 mois que j'utilise windev. Merci d'avance.

--
Jean-Fabien
Message modifié, 18 mai 2017 - 02:24
Membre enregistré
13 messages
Posté le 18 mai 2017 - 08:25
Heureusement pour moi, il n'y a qu'une seul fenêtre ou je dois faire ça.
Je vais donc me renseigner sur le clic souris par zone.
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 18 mai 2017 - 09:00
Les boutons en question, ils font quoi exactement ?

Si tu as accès a la base de données du logiciel, tu pourrais peut être, en étudiant un peu celle-ci, reproduire ce qu’écrit l'appli d'origine, via ton appli windev.
Membre enregistré
13 messages
Posté le 18 mai 2017 - 09:24
C'est application de sport, de gestion de match.
On a série de bouton avec le nom et numéro du joueur pour les deux équipes. Ensuite on les boutons "actions", par exemple tir, arrêt, carton jaune etc.

Le truc c'est que je dois cliquer sur le joueur puis après sur l'action.
J'ai donc pensé à utiliser une procédure SimuleMouseEvent mais je vois pas trop comment faire.
Membre enregistré
355 messages
Popularité : +37 (39 votes)
Posté le 18 mai 2017 - 11:06
Bonjour,

Si l'application existante est une appli Windev tu devrais sans trop de problème pouvoir lister tous les champs et boutons accessibles avec les API de Windows.
Si l'appli n'est pas en Windev c'est aussi généralement possible mais sans garantie.

Voir pour cela les API Windows :
GetWindow, GetWindowText, EnumChildWindows, GetWindoInfo, ...

La doc est disponible en anglais sur MSDN à
https://msdn.microsoft.com/en-us/library/windows/desktop/hh920508

Ensuite avec le handle des boutons et la fonction Windev SendMessage() tu devrais être en mesure d'envoyer des clics sur ceux ci.

Et avec un peu de chance et de travail tu pourras peut-être arriver à un résultat.

Bon développement.

--
Francis MOREL
http://www.SoftProtect.fr
Message modifié, 18 mai 2017 - 11:07
Membre enregistré
57 messages
Popularité : +6 (6 votes)
Posté le 18 mai 2017 - 11:37
Si ton appli a diriger est lié à une base de données ET si le but est de faire faire à cette appli une modification de données, pourquoi ne pas créer un service WEB ou une porte d’entrée WEB qui utilise des procédures permettant de faire ce que tu veux ?

Un accès WEB me semble souhaitable que tu pourrais même configurer pour un smartphone ....

--
Dr J-M des Grottes
Gestionnaire du Registre des Néphrologues Francophones de Belgique
CHU Tivoli
La louvière
Belgique
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 18 mai 2017 - 11:55
AlxLc a écrit :
C'est application de sport, de gestion de match.
On a série de bouton avec le nom et numéro du joueur pour les deux équipes. Ensuite on les boutons "actions", par exemple tir, arrêt, carton jaune etc.

Le truc c'est que je dois cliquer sur le joueur puis après sur l'action.
J'ai donc pensé à utiliser une procédure SimuleMouseEvent mais je vois pas trop comment faire.



Non mais ce que je veux dire c'est, si quand tu clic sur un bouton de ton appli, tu sais exactement ce qui se passe derriere (ex : Ajout d'un enregistrement dans une base de données) rien ne t’empêche de le reproduire via l'appli windev. Encore faut il avoir acces a la base :)