salut les filles,
j'ai besoin de faire communiquer 2 pgs PB
le 1er pg lance le 2eme via runprogram et lui envoi une requette via WriteProgramString
- pgcible = RunProgram(...
- WriteProgramString(pgcible, "blabla")
le 2eme pg est sensé lui repondre, mais je sais pas comment
les commande ReadProgramString et WriteProgramString necessite le parametre "programme"
mais je vois pas comment identifier le pg appelant
si quelqu'un a piger le fonctionnement de la communication entre pg, merci de me l'expliquer
lib process
- Itsy Bitsy
- Messages : 19
- Inscription : lun. 24/juin/2019 12:19
Re: lib process
Bonsoir Guillot,
Le plus simple serait de passer par de la memoire partagée.
Avec l'API CreateFileMapping_
Il y a un exemple ici :
https://www.purebasic.fr/english/viewtopic.php?t=66205
Il y a même le sendmessage/postmessage d'exemple, pour occasionner l'envoi d'une commande.
Avec l'usage d'une structure, c'est très flexible et simple d'usage.
Le plus simple serait de passer par de la memoire partagée.
Avec l'API CreateFileMapping_
Il y a un exemple ici :
https://www.purebasic.fr/english/viewtopic.php?t=66205
Il y a même le sendmessage/postmessage d'exemple, pour occasionner l'envoi d'une commande.
Avec l'usage d'une structure, c'est très flexible et simple d'usage.
Re: lib process
merci
mais j'ai besoin que ce soit multiplateforme
et pis, j'aimerais comprendre la lib process !
mais j'ai besoin que ce soit multiplateforme
et pis, j'aimerais comprendre la lib process !
Re: lib process
Salut Guillot.
Alors je ne sais pas du tout comment utiliser ces commandes et surtout donner une version multiplateforme car j'utilise les API pour détecter quel exe tourne quand je lance 1 prog via un prog (par exemple un updater.)
Pour ruser j'utiliserai :
- Un timer dans chaque prog
- Un fichier texte tampon qui renferme les données avec un eurodatage
- En gros le soft 1 lance le 2
- création d'un txt vierge
- Chaque soft check le contenu du txt toutes les X
- Soft2 aussi, ainsi va la communication.
C'est grossier mais ça peut marcher. (en attendant une réponse plus pertinente)
Les exemples de la doc concernant les process Index devraient être plus fournis. C'est le vide totale.
Alors je ne sais pas du tout comment utiliser ces commandes et surtout donner une version multiplateforme car j'utilise les API pour détecter quel exe tourne quand je lance 1 prog via un prog (par exemple un updater.)
Pour ruser j'utiliserai :
- Un timer dans chaque prog
- Un fichier texte tampon qui renferme les données avec un eurodatage
- En gros le soft 1 lance le 2
- création d'un txt vierge
- Chaque soft check le contenu du txt toutes les X
- Soft2 aussi, ainsi va la communication.
C'est grossier mais ça peut marcher. (en attendant une réponse plus pertinente)
Les exemples de la doc concernant les process Index devraient être plus fournis. C'est le vide totale.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: lib process
Salut Guillot, même de plusieurs façons ça ne fonctionne pas, il faut que les deux prg soient lancés avec RunProgram()...
Même le copilot arrive à se perdre dans des trucs pas possibles
Tente avec les API
Même le copilot arrive à se perdre dans des trucs pas possibles
Tente avec les API
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Re: lib process
Si les 2 programmes sont sur le meme ordi, pourquoi ne passerais tu pas par un fichier "data" que l'on ecrit et que l'autre lit ?
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
- falsam
- Messages : 7418
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: lib process
L'application A (SimpleA.exe) envoie un message à l'application B (Simple.b.exe)
■ Application A
■ Application B
■ Application A
Code : Tout sélectionner
; Application A
message$ = "Bonjour depuis A"
RunProgram("simpleB.exe", Chr(34) + message$ + Chr(34), "")
Code : Tout sélectionner
; Application B
message$ = ProgramParameter()
MessageRequester("B a reçu", message$)
Configuration : Windows 11 Famille 64-bit - PB 6.23 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%