begin process at 2012 02 13 00:38:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de registre

 > FAIRE COMMUNIQUER PLUSIEURS PROGRAMMES ENTRE EUX EN TEMPS REEL LE PLUS FACILEMENT DU MONDE!

FAIRE COMMUNIQUER PLUSIEURS PROGRAMMES ENTRE EUX EN TEMPS REEL LE PLUS FACILEMENT DU MONDE!


 Information sur la source

Note :
Aucune note
Catégorie :Base de registre Niveau :Débutant Date de création :18/01/2005 Date de mise à jour :19/01/2005 01:49:23 Vu / téléchargé :9 680 / 795

Auteur : draluorg

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Permet de faire communiquer deux ou plusieurs programmes entre eux en passant par la bdr

la methode utilisee ici pour l'exemple est WshShell c'est po la meilleur methode mais c'est juste pour l'exemple



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 janvier 2005 23:47:23 :
s
19 janvier 2005 01:49:23 :
 

 Sources du même auteur

Source avec Zip Source avec une capture GESTION DES PRIVILEGES DES PROCESSUS
Source avec Zip Source avec une capture TEMPS PROCESSEURS TOTAL ET PAR UNITÉ (API NATIVE)
Source avec Zip Source avec une capture ENREGISTRER ET CHARGER LISTVIEW DANS FICHIER AVEC IMAGE ETC....
Source avec Zip Source avec une capture GESTION DES FICHIERS SWAP
Source avec Zip Source avec une capture CLASSE POUR RÉCUPERER L'UTILISATION CPU D'UN PROCESSUS

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) SHELLVIEW EN VB.NET par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) AJOUTER OU SUPPRIMER MENU CONTEXTUEL D'APPLICATION PAR CLIC ... par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) MODIFIER IMAGE COULEUR EN NOIR ET BLANC PAR CLIC DROIT par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) RENOMMER TOUS LES FICHIERS D'UN DOSSIER PAR CLIC DROIT par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) REDIMENSIONNER ET IMPRIMER FORMAT PHOTO (10X15) par Le Pivert

Commentaires et avis

Commentaire de Alain Proviste le 18/01/2005 23:44:52 administrateur CS

oh mon dieu oh mon dieu, préservez nous de ça.
j'avoue que c'est imaginatif, mais bon.
les timers : c'est mal
la base de registre : c'est mal
bonne chance.

Commentaire de BruNews le 19/01/2005 00:02:57 administrateur CS

Comme dit plus, ne jamais faire cela.
Windows propose tout ce qu'il faut pour la comm interprocessus:
Event, Semaphore, FileMapping, etc...
Explications completes dans le Richter:
http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

Commentaire de draluorg le 19/01/2005 00:20:01

Yep mais comme tu dis si bien c'est pour la communication interprocessus, ce qui n'est pas le cas ici c'est une simple communication indirect via la bdr ms l'avantage est la simplicite
je savais que j'allais me prendre ce genre de comentaires dans les dents mais il y a des debutants sur ce site dont moi qui n'ont pas forcement envie de se prendre la tete avec les handle ect.. pour un resultat identique...
mais bon je suis d'acord avec vos commentaires mais l'aynant code pour moi je me suis dis que ca interesserait surement d'autres
voila bonne prog a vous @+

Commentaire de Nocturne le 19/01/2005 02:47:02

En effet ca reste très simple comme methode, tu pourrais également le faire via un fichier text.
C'est pas non plus du temps réel vu que exploite un timer pour le declenchement de lecture de la Bdr.

Mais bon c'est pas de la communication interprocessus.

Regarde une de mes source, échange de message windows entre deux applications.
http://www.vbfrance.com/code.aspx?ID=22686

c'est une source qui je pense reste facile a comprendre et qui est court.
De plus elle se rapproche plus de l'execution en temps réel vu que j'exploite directement les messages.

Bonne continuation.

Commentaire de Morpho le 19/01/2005 10:23:05

lut a tous
Je cherche un exemple de communication interprocessus comme celui-ci mais non pas pour echange un message mais une collection.
Quelqu'un pourrait-il me mettre sur une piste ??
Merci

Commentaire de draluorg le 19/01/2005 11:10:58

salut a tous,

" tu pourrais également le faire via un fichier text."

Yep ms ca ralentirait l'echange je pense, et puis je me trompe peut etre mais a ma connaissance on ne peut pas lire et ecrire en meme temps ds le meme fichier texte si?

sinon pour Morpho, qu'entends tu par collection ?
Le but du code n'est pas d'envoyer des "messages" mais d'echanger des informations de toutes sortes...

Commentaire de Nocturne le 19/01/2005 13:50:13

C est vrai que tu ne peux pas lire et ecrire un fichier text en même temps, mais rien ne t'empeche de faire une lecture du fichier text pour récupérer les infos, puis après faire une ecriture pour mettre a jours les infos.

En terme de temps je pense a qq chose prêt que c'est la même chose que sur la Bdr mais utilise les APIs, stp.

Mais bon je pense que c'est pas une bonne chose de passer par la Bdr car tu prends un très gros risque de l'endomager.

Enfin bref, personnellement je n'utiliserais jamais ta methode, je préfere passer par les messages windows.

Tu devrais t'y mettre et apprends a utiliser les APIs.
En utilisant les APIs tu entres dans une autre dimension et t'offre d'autres possibilités.

Un developpeur qui ne sait pas utiliser les APIs, n'est pas un developpeur...

En reponse a Morpho,
Dans l'exemple que j'ai donné, échange de message windows entre deux applications.
http://www.vbfrance.com/code.aspx?ID=22686
tu peux très bien également récupérer d'autres types d'information, comme récupérer le contenu d'une liste box, la couleur d'un bouton, etc... pour cela il faudra modifier la source.

Regarde sur ce site : http://alphomega.developpez.com/EchangeVal/
il y a une explication pour envoyer une structure si c'est cela que tu recherches. C'est en Delphi.

Bonne prog.

Commentaire de draluorg le 19/01/2005 15:07:55

eh wai, pour les api's il est vrai que je ne les maitrises pas encore tous, mais je sais quand meme les utiliser.
d'ailleur je conseil a ceux qui voudront utiliser cette methode d'utiliser les api pour la bdr ca rendra l'utilisation plus aisee et permetra des echanges plus complexe

sinon il est clair avec le code que tu as fais tu ne vas pas utiliser le mien lol , mais tout ce que tu as cite (recuperer le contenu d'une textbox ect..) est tout a fait faisable et relativement facile avec ma methode.

sinon tu parles de risques de l'endomager qu'entends tu par la ? La bdr est en partie faite pour ca non ?

Enfin bon,meme si ma source n'a pas l'air de convaincre je vais quand meme voir pour la mettre a jour en utilisant les api pour la bdr

merci pour vos commentaires @+

Commentaire de Pym Corp le 19/01/2005 15:27:14

Je trouve que l'utilisation abusative de la base de registre est une très mauvaise chose et doit être réservé aux taches importantes.

Tu ferais mieu de suivre les conseils de Nocturne.

Commentaire de crossblade le 19/01/2005 15:37:35

Même si par les api c'est plus pratique mais faut savoir les gérer; si tu veux faire encore plus simple, crée un dossier temporaire pour l'application et demande à un timer de vérifier le dossier toutes les X secondes! et tu met dans le dossier n'importe quoi ( par exemple un fichier text dans lequel le dialogue est écrit ou bien des images)

Commentaire de Nocturne le 19/01/2005 16:51:33

Pym Corp vient de donner la reponse.
On n'utilise pas une Bdr comme une base de donnée...

La Bdr constitue le coeur de Windows, elle centralise tous les paramètres de configuration. La gestion / pilotage des périphériques (processeur, BIOS, cartes PCI), gestion des logiciels, gestion des différents profils ...
Les informations nécessaires sont alors stockées dans une structure particulière, le Registre.
Ce registre est en fait constitué de deux fichiers qui se trouvent dans votre répertoire Windows : USER.DAT et SYSTEM.DAT.
Ces fichiers sont construits à chaque démarrage par Windows.

Si votre Bdr est endomagé, Windows risque de ne plus fonctionner correctement voir même ne plus démarrer.

A+

Commentaire de draluorg le 19/01/2005 18:06:46

oui biensure ca je sais mais je ne vois pas comment mon code pourrait endomager la bdr
Pour moi le seul moyen de l'endomager serait de supprimer ou remplacer une mauvaise cle mais a partir du moment ou on ne travail que sous une cle que l'on a cree et ses sous cles on ne touche pas aux cles qui seront interpretees par windows.

Sinon je vais quand meme me pencher sur ton code Nocture car c'est clairement plus elegant mais je n'avais pas le temps de familliariser avec ton code lorsque j'avais besoin de cette fonction, en tout cas felicitation :)

sinon encore un truc Nocturne, est il possible de creer une zone de memoire "public" qui serait acessible a plusieurs processus ? L'idee ne serait pas de s'emvoyer des messages mais d'echanger des variables, pense tu que c'est possible ?

Commentaire de BruNews le 19/01/2005 18:12:55 administrateur CS

FileMapping est le plus simple pour faire une zone de memoire partagee.

Commentaire de draluorg le 19/01/2005 19:22:14

merci BruNews mais je ne trouve rien sur le FileMapping

pourrais tu m'en dire un peu plus stp ?
merci @+

Commentaire de BruNews le 19/01/2005 19:32:22 administrateur CS

J'ai donne le lien plus haut du Richter, il explique tout cela en detail avec exemples. Toute personne s'interessant a la prog serieuse sur Windows doit avoir lu Richter, c'est la reference en la matiere, il est entre autre l'auteur de quelques modules de Windows.

Commentaire de Nocturne le 19/01/2005 20:51:37

re - draluorg,
J'ai jamais dit que ton code endomage la Bdr, j'ai simplement souligné que d'utiliser la Bdr de cette facon pouvait engendrer un endomagement de la Bdr.

Pour revenir a ton code, il fonctionne très bien, mais je pense que c'est pas un très bon exemple pour les débutants en VB de faire de la programmation de cette facon. Il est préférable que les débutants utilisent un fichier text ou autre chose...

Pour repondre a ta question, "creer une zone de memoire "public" qui serait accessible a plusieurs processus pour échanger des variables".

Je ne pense pas que c'est possible.
Dans ce contexte est d'utiliser les messages windows.
Avec les messages windows, tu peux envoyer des messages string, numérique et autres...
Après il te reste plus qu'a faire passer ces messages dans une procedure "capture message windows", avec un filtre qui te permetras de récupérer uniquement les infos qui te concernne.

Si tu a plusieurs applications qui doivent dialoguer ensemble, et bien sur chacune d'entre elle tu mets une procédure analogue de capture avec ces filtres.

Ce qu'il faut comprendre par messages windows, c'est un échange permanent de messages divers entre le système d'exploitation et les processus actifs (applications en cours d'execution). Cela s'appelle la boucle de messages (Message Loop).

Je t'invite a faire un tour sur le site : http://alphomega.developpez.com/EchangeVal/
Jean-Luc Mellet (Alphomega) explique très bien cette gestion de messages.

Bonne chance

Commentaire de 42wawa42 le 24/01/2005 16:41:18

Je trouve le petit programme bien mais mais mais ….
Comme tous les commentaires déjà donnes au programme enfoncer le clou plus profond NON.
Il est vrai que le problème de transfère n'est pas des plus simples a résoudre.
Personnellement j'ai un programme N1 qui enregistre des données d'un Port COM qui sont changées en temps REEL . Qui marche très bien.
De l'autre cote un autre programme N2 utilise les données de P N1 pour les mettre dans les différentes
TextBox .
Mais je n'ai toujours pas trouvé de solutions (source ) pour produire la fonction "LinkItem ,LinkMode,
LinkTopic" dans VB4.0 a VB6.0. les Exemples de MS sont toujours pour P N2 a partir de Excel, je cherche un exemple pour P N1.
Merci pour une réponse          

Commentaire de Melnofil le 22/09/2006 17:01:09

Comme l'a presque dit BruNews, la mémoire partagée est une zone qui peut être lue par plusieurs processus, c'est ce qu'il y a de plus rapide pour communiquer entre deux processus mais ca pose pas mal de problèmes de verrous. Par réflexe voici les liens wikipédia pour débuter/comprendre de quoi je parle :
http://fr.wikipedia.org/w/index.php?title=Verrou_%28informatique%29
http://fr.wikipedia.org/wiki/S%C3%A9maphore_%28informatique%29

draluorg :
TON code est peut-être sûr mais tu as pensé aux codes de ceux qui vont tenter de t'imiter ? Il y a des débutants sur ce site qui peuvent faire une erreur dans leur programme (par exemple dans le nom d'une clé) et effacer par mégarde un truc vital à windows. Si on dit de ne pas utiliser la base de registre ce n'est pas pour restreindre les possibilitées de programmation des débutants, c'est juste qu'on pense que les débutants veulent garder leurs ordis intacts durant l'apprentissage.
La base de registre sert surtout de base de donnée à windows, mais aussi à enregistrer des données partagée entre tous les utilisateurs d'un même ordinateur, ou encore à laisser une trace d'un programme désinstallé pour récuperer des infos de config ou autres à la prochaine réinstallation (style shareware à utilisation limité). J'en oubli peut-être mais en tout cas ca ne sert sûrement pas à faire communiquer des processus (hors Windows lui-même bien sûr).

Pym Corp :
"l'utilisation abusive" (ca suffit)

crossblade :
Un accès disque toutes les X secondes ce n'est pas une bonne idée, au minimum utilise la mémoire partagée avec un flag qui indique si le dossier a changé.

Si vraiment vous ne voulez pas utiliser la mémoire partagé il faut utiliser des sockets locaux, les messages/signaux (windows), les pipes/tubes (linux, bien que je doute fort que quelqu'un programme en VB sous linux un jour :-p), etc. Réflexe à nouveau :
http://fr.wikipedia.org/wiki/Communication_inter-processus

Bon courage

Commentaire de Alain Proviste le 22/09/2006 20:26:20 administrateur CS

un an et huit mois après la guerre, mais commentaire bienvenue tout de même :)

Commentaire de draluorg le 22/09/2006 20:41:54

Salut a tous,

Erf wai c'est vrai que ca date, et d'ailleur je ferais bien de demander qu'on la supprime...

Si un modo passe par la avant...

++

Commentaire de Melnofil le 24/09/2006 00:12:34

top3 dans une recherche sur google ==> je considère que je peux commenter ;)

La supprimer me parait approprié

++

Commentaire de Alain Proviste le 24/09/2006 02:45:15 administrateur CS

non car comme dans 50% des sources, les commentaires en apprennent plus que la source elles mêmes, c'est pourquoi j'ai ricané sur ton commentaire, mais je l'ai laissé ainsi que la source, parce que ça apporte de la pertinence au sujet.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,841 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales