FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Pilotage de programme
Pilotage de programme
Débuté par Alain, 21 déc. 2006 17:28 - 4 réponses
Connectez-vous…
Alain
#1
Posté le 21 décembre 2006 - 17:28
J'ai un premier programe "A"en plein écran
Ce prog A lance un second programme "B", qui s'éxécute en pleine écran devant le prog A
"Pour cela j'utilise lanceappli"
La où le problème commence, c'est que le prog B doit prévenir le prog A pour que celui-ci exécute une tache d'impression. Puis l'impréssion fini, le prog A doit prévenir le prog B du bon déroulement et enfin le prog B prévient le prog A de la fin de son éxecution.
Durant tout cela seul le prog B doit être affiché.
Je réussi à faire marcher cela avec la fonction envoitouche sur les handle des programmes mais j'ai un fonctionnement qui est différent suivant les ordinateurs utilisés. Apparement cela vient de la prise de focus des fenêtres.
Quelqu'un connait-il une solution efficace pour faire dialoguer deux prog indépendant sans avoir à reprendre le focus à chaque envoi d'information ??
merçi
Signaler
0
0
Vincent
#2
Posté le 21 décembre 2006 - 17:43
Les sockets peut-être ?
Vincent
Signaler
0
0
Kart
#3
Posté le 21 décembre 2006 - 23:28
Salut,
tu peux utiliser une zone mémoire partagée, avec les fonctions de filemapping (kernel32.dll). Cherche un exemple en VB pour créer tes fonctions de dialogue entre tes applications.
Signaler
0
0
Philippe Pasquali
#4
Posté le 22 décembre 2006 - 10:55
Bonjour
Si mes deux applications sont sur le même PC j'utilise souvent la technique
des messages privés
Programme A ( c'est la même chose pour B )
**********************************
global au projet
____________
WM_MESSAGE est une chaîne fixe sur 32 // Permet d'obtenir un N° de
message unique pour le dialogue avec LASER.EXE
WM_NumMessage est un entier // N° de message
unique pour le dialogue avec LASER.EXE
code d'initialisation
______________
// Demande à windows le numéro de message pour dialoguer avec
l'application B
WM_MESSAGE = "UNE PHRASE SUR 32 MAX" // ATTENTION CELA DOIT ETRE LA
MEME VALEUR DANS LE PROGRAMME B !!!
WM_NumMessage =
AppelDLL32("USER32","RegisterWindowMessageA",&WM_MESSAGE)
IF WM_NumMessage = 0 THEN
Erreur("Impossible de créer le lien de communication avec le programme B
!")
Ferme()
END
// Initialiase les interruptions sur le message WM_NumMessage, venant de
l'application B
NumEveRx = Evénement("RxEvenement","*.*",WM_NumMessage)
IF NumEveRx=0 THEN
Erreur("Impossible de recevoir des messages de l'application B !")
Ferme()
END
Ne pas oublier de créer une procédure globale : "PROCEDURE
RxEvenement(iMessage, wParam, lParam)" pour recevoir les messages de
l'application B
Envoyer un message de A vers B
_________________________
SendMessage(SysFenHandle([Nom de la fenêtre B]),WM_NumMessage, [Entier_1],
[Entiér_2])
dans ce cas, l'application B voit son exécution déroutée vers sa procédure
RxEvenement
et
iMessage sera égal à WM_NumMessage
wParam sera égal à Entier_1
lParam sera égal à Entier_2
Ne pas oublier en fin de projet
-------------------------------
IF NumEveRx > 0 THEN FinEvénement(NumEveRx)
ATTENTION TU NE PEUT PAS AVEC CETTE METHODE ENVOYER UN POINTEUR SUR UNE
VARIABLE...................
mais tu peut passer des variables par fichier ini ou hf
"Alain" <alainfiacsan@aol.com> a écrit dans le message de news:
458a9f91$1@news.pcsoft.fr...
J'ai un premier programe "A"en plein écran
Ce prog A lance un second programme "B", qui s'éxécute en pleine écran
devant le prog A
"Pour cela j'utilise lanceappli"
La où le problème commence, c'est que le prog B doit prévenir le prog A
pour que celui-ci exécute une tache d'impression. Puis l'impréssion fini,
le prog A doit prévenir le prog B du bon déroulement et enfin le prog B
prévient le prog A de la fin de son éxecution.
Durant tout cela seul le prog B doit être affiché.
Je réussi à faire marcher cela avec la fonction envoitouche sur les handle
des programmes mais j'ai un fonctionnement qui est différent suivant les
ordinateurs utilisés. Apparement cela vient de la prise de focus des
fenêtres.
Quelqu'un connait-il une solution efficace pour faire dialoguer deux prog
indépendant sans avoir à reprendre le focus à chaque envoi d'information
??
merçi
Signaler
0
0
yannta
#5
Posté le 25 décembre 2006 - 19:56
Bonjour
vous pouvez consulter l'aide a propos de la synchronisation des thread (fonction Signalcrée() par exemple)
Des mêmes signaux peuvent etre gérés par 2 applications différentes.
ça me semble très bien adapté pour votre situation
Cordialement
Yann
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte