Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème process long à répondre bloque appli

3 réponses
Avatar
bahn po
Bonjour,

J'ai trouvé un code ici (1) qui répond à ce que je cherche. Le problème
est que parfois quand NetShareEnum est lancé le délai avant la réponse
peut être très long et cela bloque l'appli.

Du coup j'ai suivi le guide ici (2) et crée un activeX exe qui
fonctionne mais le problème est identique car dans mon appli lorsque
activeX est appelé alors qu'il n'a pas fini de traiter une demande
précedente j'ai une fenêtre de dialogue qui m'explique qu'il faut
attendre ou basculer vers, bref le problème est le même.

Alors je me suis dit qu'en cas de délai trop long, la réponse de
l'activeX ne m'intéresse plus alors je peux tuer le process exe qu'est
l'activeX.

Mais cela génère une autre erreur "le serveur distant n'existe pas ou
plus" quand on relance une demande sur cet activeX

Question A) est-il possible de relancer l'activeX depuis l'appli ?

Question B) est-il possible de créer une appli en vb qui retournerait
le résultat d'une commande dans une variable récupérable par une autre
appli ?

Merci bien pour votre aide.



1)
http://vbnet.mvps.org/index.html?code/network/netshareadd.htm

2)
http://activex.developpez.com/%5BActiveX_&_VB6%5D%20Les%20EXE%20ActiveX.pdf

3 réponses

Avatar
Jean-marc
bahn po wrote:
Bonjour,



Hello,

Question B) est-il possible de créer une appli en vb qui retournerait
le résultat d'une commande dans une variable récupérable par une autre
appli ?



Dans une variable, non.

MAIS en revanche, il est très simple d'écrire le résultat dans un fichier,
qui lui peut être aisément lu par une autre appli.

C'est un moyen simple et portable d'échanger de l'info entre 2 applis.

Pour lancer un autre exe depuis une appli VB, il y a plusieurs
méthodes en fonction de ce que tu recherches. Pas mal d'exemples
ici dans notre FAQ:
http://faq.vb.free.fr/index.php?question=7
http://faq.vb.free.fr/index.php?question2

Ces articles contiennent en plus de niombreux liens (section
"Aller plus loin") vers de la documentation ou d'autres
exemples.

Note: pour communiquer efficacement et éviter des problèmes de locking,
une bonne façon de faire est la suivante.

Soit les 2 applis devant échanger des infos : A et B
On décide que A lance B, et que B doit écrire ses résultats
dans un fichier "response.txt".
A devra donc lire ce fichier, mais seulement quand
celui ci est rempli (donc que B a fini de l'écrire).

Pour synchronizer, voici un moyen simple:

A détruit si ils existent 2 fichier : response.txt et sentinel.txt
A lance B
A se met à attendre que le fichier sentinel.txt existe à nouveau

-- pendant ce temps ... --

B est lancé et fait ses calculs, process, etc.
Quand il a les résultats, il les écrit dans response.txt
PUIS enfin, B créé un fichier vide : sentinel.txt
puis B s'arrete.

A ce moment, A verra apparaitre un fichier sentinel.txt, ce qui
indique à coup sur que response.txt est prêt à être lu pour
obtenir les résultats de B.

Simple, portable, efficace.

Bonne suite!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
bahn po
Jean-marc a formulé la demande :


Dans une variable, non.

MAIS en revanche, il est très simple d'écrire le résultat dans un fichier,
qui lui peut être aisément lu par une autre appli.

C'est un moyen simple et portable d'échanger de l'info entre 2 applis.

Pour lancer un autre exe depuis une appli VB, il y a plusieurs
méthodes en fonction de ce que tu recherches. Pas mal d'exemples
ici dans notre FAQ:
http://faq.vb.free.fr/index.php?question=7
http://faq.vb.free.fr/index.php?question2



(...)

Simple, portable, efficace.

Bonne suite!





Merci pour ta réponse. Je vais donc utiliser un fichier pour contrôler
le résultat.

Bonne journée.
Avatar
Jean-marc
bahn po wrote:
Jean-marc a formulé la demande :




Merci pour ta réponse. Je vais donc utiliser un fichier pour
contrôler le résultat.

Bonne journée.



Pareillement !

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;