[R] Envoie de message entre programmes pour synchronisation

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Exter76
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 29 mai 2021 17:57
Status : Hors ligne

[R] Envoie de message entre programmes pour synchronisation

#1

Message par Exter76 »

Bonjour à tous !
J'aurai une petite question, je travail sur un petit projet et mon idée serai comme son nom l'indique,
de pouvoir envoyer différent message entre les programmes pour que ceux-ci puisse se synchroniser.
Je vais vous donner un petit exemple pour vous donner une idée plus clair:
Programme 1 et 2 écrivent chacun un mail, Statuts dans leur l'edit: "Mail en cours"
une fois le mail envoyer statuts: "Envoyer"
Programme 3 et 4 une fois que le statuts des 1 et 2 est écris: "Envoyer"
ils vont vérifier l'adresse mail que je leur ai fournis, attendre la réception du mail pour y répondre et transféré un message et au programmes 4 et 5 et ainsi de suite.

Je me doute qu'il y a beaucoup plus simple a faire,
mais se qui m'intéresse dans ce cas c'est plutôt la communication entre plusieurs programme via une seul interface.

J'ai trouver différent script qui m'aiderait a faire cela, mais il interagissent entre différents GUI alors que j'aimerai pouvoir n'en utiliser qu'un seul.
Exemple de se que j'ai pu trouver:
► Afficher le texte
Et voilà le genre d'interface que je souhaite utiliser:
► Afficher le texte
Les Combo de mon interface me serviront a sélectionner quel programme je souhaite utiliser et le bouton Start pour l'exécuter, jusque là tout va bien.
Les différents Edit me servirons à indiquer le statuts du programme en cours:
"En cours" - "A l'arrêt" - "Exécute l'étape 1" - "Exécute l'étape 2" ect...

Et là est mon premier soucis, dois-je utiliser un Edit sachant que les programmes devront principalement lire les derniers messages et j'ai peur que cela ne risque de créer des confusion, a moins qu'il y a un moyen d'avoir une lecture uniquement du dernier message ?
Ou alors je vais devoir utiliser autre chose ?

Et là deuxième soucis que je rencontre,
Comment est-ce que je pourrais indiquer au programme 2 ou 3 de lire le dernier message de l'edit du programme 1 ?
Se serait principalement attendre le "Envoyer" du programme 1 pour exécuter son action.

C'est uniquement pour "la gloire", je me répète mais je sais qu'il y a plus simple, c'est justement le fait de pouvoir faire une synchronisation des programmes via l'interface qui m'intéresse :lol:

Dans l'attente de votre aide, Merci d'avance :)
Modifié en dernier par Exter76 le mer. 04 janv. 2023 16:07, modifié 1 fois.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: Envoie de message entre programmes pour synchronisation

#2

Message par jl56 »

Bonjour à tous,

Pour synchroniser 2 programmes j'utilise un fichier ini ecrit/lu par les 2 programmes c'est très réactif
dans votre exemple 1 er programme écrit "mail envoyé" , le 1 émm programme le lit via une boucle puis écrit "mail traité" ou supprime la section ou clé ..
il y a beaucoup de possibilité

Cordialement,

JL56
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: Envoie de message entre programmes pour synchronisation

#3

Message par jchd »

Faire une recherche pour "IPC" (Inter-Program Communication) sur le forum US. On peut utiliser de la mémoire partagée sous mutex, du passage de messages, du mailslot, des contrôles cachés, etc. Tout ça est bien plus solide que d'utiliser un fichier qui pose des problème de concurrence d'accès.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Exter76
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 29 mai 2021 17:57
Status : Hors ligne

Re: Envoie de message entre programmes pour synchronisation

#4

Message par Exter76 »

Bonsoir !
Merci pour vos réponse, en effet j'ai déjà vu ça plusieurs vois l'utilisation des fichier .ini mais j'aimerai avoir un petit visuel de se qui se passe entre les programmes, après rien ne m'empêche de combiner les deux.
J'irai faire un petit tour sur le forum US, je n'avais pas le nom exacte de cette manœuvre, merci encore.
Dans l'ideal j'aimerai que ce soit rapide comme communication donc je mènerai mon enquête, si vous avez plus de détail a me confier n'hésitez pas. :)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Envoie de message entre programmes pour synchronisation

#5

Message par TommyDDR »

L'utilisation d'un fichier est à prohiber pour des raisons d'accès concurrent.
Si vos programmes veulent accéder tous les 2 au fichier, vous aurez soit un problème d'écriture, soit un écrasement de l'une des deux actions.
Je vous conseille aussi de regarder ce que jchd vous a conseillé.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Nine
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 103
Enregistré le : ven. 17 avr. 2020 01:23
Status : Hors ligne

Re: Envoie de message entre programmes pour synchronisation

#6

Message par Nine »

Voir mon UDF très simple d'utilisation :
https://www.autoitscript.com/forum/topi ... messaging/
Répondre