|
Passage de paramètres entre deux applications |
Iniciado por guest, ago., 24 2005 1:14 PM - 12 respostas |
| |
| | | |
|
| |
Publicado em agosto, 24 2005 - 1:14 PM |
Bonjour,
J'ai deux applications WD, l'application P1 qui appelle l'application P2 via la commande LanceAppli. L'application appelée (P2) reçoit des paramètres par la ligne de commande et doit retourner un ou plusieurs paramètres à l'application appellante (P1). Or, je n'arrive pas a renvoyer des données à l'application appelante (P1). Quelqu'un aurait-il une solution à ce problème. Merci par avance
Nicolas |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 24 2005 - 1:17 PM |
Nicolas avait écrit le 24/08/2005 :
Bonjour,
J'ai deux applications WD, l'application P1 qui appelle l'application P2 via la commande LanceAppli. L'application appelée (P2) reçoit des paramètres par la ligne de commande et doit retourner un ou plusieurs paramètres à l'application appellante (P1). Or, je n'arrive pas a renvoyer des données à l'application appelante (P1). Quelqu'un aurait-il une solution à ce problème. Merci par avance
Nicolas
bonjour
en écrivant des infos dans un fichier texte temporaire ?
titou44 chez freesurf.fr
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 24 2005 - 1:27 PM |
Effectivement, j'utilise un fichier TXT ou INI. |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 24 2005 - 3:52 PM |
Pourquoi pas simplement un fichier HF !.... C'est baucoup plus simple et beaucoup plus sûr que des .TXT et .INI
"Nicolas" <guest@newsgroup.fr> a écrit dans le message de news: 430c260c@news.pcsoft.fr...
Bonjour,
J'ai deux applications WD, l'application P1 qui appelle l'application P2 via la commande LanceAppli. L'application appelée (P2) reçoit des paramètres par la ligne de commande et doit retourner un ou plusieurs paramètres à l'application appellante (P1). Or, je n'arrive pas a renvoyer des données à l'application appelante (P1). Quelqu'un aurait-il une solution à ce problème. Merci par avance
Nicolas
|
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 24 2005 - 4:19 PM |
En quoi est-ce plus sur selon toi ? |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 24 2005 - 4:27 PM |
"Nicolas" <guest@newsgroup.fr> a écrit dans le message de news: 430c260c@news.pcsoft.fr...
Bonjour,
J'ai deux applications WD, l'application P1 qui appelle l'application P2 via la commande LanceAppli. L'application appelée (P2) reçoit des paramètres par la ligne de commande et doit retourner un ou plusieurs paramètres à l'application appellante (P1). Or, je n'arrive pas a renvoyer des données à l'application appelante (P1). Quelqu'un aurait-il une solution à ce problème. Merci par avance
Nicolas
un partage de mémoire peut être http://www.windasso.org/cgi-bin/gesmod.exe… Cdt JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 24 2005 - 5:21 PM |
Le partage de fichier HF est intégré à Windev, pas aux TXT. Si tu veux mettre une valeur dans un fichier TXT et être sûr de la lire en intégrité de l'autre coté, tu dois "Bloquer" le TXT durant son écriture. J'avais moi aussi commancé par ce type de fichier (TXT et INI) j'avais que des ennuis, puis j'avais amélioré avec un fichier de blocage durant l'écriture !... enfin, une vrai usine à gaz !
Et puis le celebre adage "Pourquoi faire compliqué quand on peu faire simple" : un fichier HF de transit avec les rubriques correspondantes aux parametres dans un sens et aux resultats dans l'autre, plus de soucis de passage de paramètre ou de retour de data, quelques instructions de type Hxxx et c'est emballé !...
"Polo" <paul.gera@free.fr> a écrit dans le message de news: 430c51d2$1@news.pcsoft.fr...
En quoi est-ce plus sur selon toi ?
|
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 25 2005 - 9:57 AM |
Utilisation de message Windows
Initialisation de P1 :
// variables globale de projet P1 glbNumeroDeMessage est un entier glbHandleFenetre est un entier ******************** // Initialisation de fenFenetre (cette fenêtre attend le retour du pgm2) lpString est une chaîne ASCIIZ sur 32
glbHandleFenetre = handle(fenFenetre) //
// On crée un message Windows lpString = "YwNomMessage" // un nom quelquonque glbNumeroDeMessage=API("USER32","RegisterWindowMessageA",&lpString)
Evénement("prcLocalDeFenetre","fenFenetre",glbNumeroDeMessage)
************************ // Procedure locale de fenFenetre // Cette procédure est déclenchée lorsque fenFenetre reçoit un message prcLocalDeFenetre (x,y,z) Trace(x,y,z)
ou chTexte est une chaine fixe sur 32 Transfert(&chTexte,y,z) Trace(chTexte)
// y et z sont les paramètres utilisés dans le SendMessage RENVOYER 1 ************************ Appeler le programme P2 avec les paramètres glbHandleFenetre et glbNumeroDeMessage (variables globales pHandleFenetre et pNumeroDeMessage dans le programme P2)
Le programme P2 peut envoyer des valeurs au programme P1 par
p1 est entier p2 est entier chTexte est une chaine fixe sur 32 = "Bonjour" p1 = &chTexte p2 = taille(chTexte)
SendMessage(pHandleFenetre,pNumeroDeMessage,p1,p2)
**************************** Avec quelques petits aménagements, le dialogue peut être bi-directionnel. Par exemple : Dans le pgm P2, on implémente une procédure prcLocalDeFenetre identique sur une fenêtre
P2 envoie à P1 le handle de la fenêtre Le Pgm P1 peut donc envoyer des messages à P2
***************************** Bon dev
Yann |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 25 2005 - 3:25 PM |
Je me souviens avoir enployé les messages Windows et ... la catastrophe (en Win98), cas si tu as une CPU un peu lente, et que l'usager "secoue" sa souris, les messages enntrant (surtout ceux de la souris)excedent la taille de la pile des messages, et des messages était perdus. Pour XP je ne sais pas si c'est toujours le cas.
"Yann" <ywagner@worldcom.ch> a écrit dans le message de news: 430d496a$1@news.pcsoft.fr...
Utilisation de message Windows
Initialisation de P1 :
// variables globale de projet P1 glbNumeroDeMessage est un entier glbHandleFenetre est un entier ******************** // Initialisation de fenFenetre (cette fenêtre attend le retour du pgm2) lpString est une chaîne ASCIIZ sur 32
glbHandleFenetre = handle(fenFenetre) //
// On crée un message Windows lpString = "YwNomMessage" // un nom quelquonque glbNumeroDeMessage=API("USER32","RegisterWindowMessageA",&lpString)
Evénement("prcLocalDeFenetre","fenFenetre",glbNumeroDeMessage)
************************ // Procedure locale de fenFenetre // Cette procédure est déclenchée lorsque fenFenetre reçoit un message prcLocalDeFenetre (x,y,z) Trace(x,y,z)
ou chTexte est une chaine fixe sur 32 Transfert(&chTexte,y,z) Trace(chTexte)
// y et z sont les paramètres utilisés dans le SendMessage RENVOYER 1 ************************ Appeler le programme P2 avec les paramètres glbHandleFenetre et glbNumeroDeMessage (variables globales pHandleFenetre et pNumeroDeMessage dans le programme P2)
Le programme P2 peut envoyer des valeurs au programme P1 par
p1 est entier p2 est entier chTexte est une chaine fixe sur 32 = "Bonjour" p1 = &chTexte p2 = taille(chTexte)
SendMessage(pHandleFenetre,pNumeroDeMessage,p1,p2)
**************************** Avec quelques petits aménagements, le dialogue peut être bi-directionnel. Par exemple : Dans le pgm P2, on implémente une procédure prcLocalDeFenetre identique sur une fenêtre
P2 envoie à P1 le handle de la fenêtre Le Pgm P1 peut donc envoyer des messages à P2
***************************** Bon dev
Yann
|
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 25 2005 - 4:05 PM |
Bonjour,
La solution via un fichier HF me paraît élégante. Regarde aussi les sockets.
Bon développement
C_Freddy |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 26 2005 - 12:33 PM |
Tout d'abord merci pour ton aide ainsi qu'à tous ceux qui ont émis des idées.
J'ai fait comme cité dans ton exemple et j'ai un problème lors de la réception : j'ai un message d'erreur "L'adresse source fournie (0x009104A8 sur 8 octets) est invalide. Elle ne représente pas une adresse mémoire valide en lecture." L'adresse reçue par le programme appelant correspond bien à celle envoyée par le programme appelé. J'ai fait pas mal de tests avec modification du code sans arriver à un résultat concluant. Aurais-tu une idée de la raison de cette erreur ? Merci par avance et bonne journée.
Nicolas |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 29 2005 - 12:21 PM |
Transmet-moi le bout de code qui plante
ywagner@worldcom.ch
A+
YAnn |
| |
| |
| | | |
|
| | |
| |
Publicado em setembro, 23 2005 - 2:43 PM |
Bonjour,
Dans le même esprit, quelle(s) API(s) utiliser pour qu'une appli Windev puisse lire le contenu d'un champ d'une appli non Windev ?
Merci pour toute idée.
Bons dév. EJ |
| |
| |
| | | |
|
| | | | |
| | |
|