Newsgroup: it.comp.lang.visual-basic
Titolo: Variabili in comune

Esiste un modo per avere delle variabili in comune tra due programmi?
C'è un programma in vb6 (pippo.exe) che restituire un dato.
Questo dato deve essere agganciato dal gestionale,
Sw sviluppato in un linguaggio non compatibile vb.
Il fatto è questo.
Dal gestionale si pensava di eseguire il pippo.exe il quale avrebbe prodotto 
su file txt il risultato, ne avrebbe atteso la chiusura e successivamente si 
sarebbe agganciato il file testo ed importo il dato.
Purtroppo il programma pippo.exe è pesante e la sua esecuzione, elaborazione 
e restituzione del dato, richiede un tempo non accettabile. Ma se lasciato 
attivo il dato che ci interessa è disponibile quasi subito.
Ho pensato (attività pericolosa)
Se faccio un programmino "pluto.exe" da pochi kb, che "legge le variabili" 
del programma pippo.exe,
crea il file per il gestionale, il tempo di attesa si riducerebbe molto. 
Poichè il gestionale esegue pluto.exe e ne attende la chiusura, il tutto 
risulta più snello.
Ma come faccio a far leggere a pluto dei valori di Pippo?
Secondo voi ha senso questa soluzione? 

 successivamente si sarebbe agganciato il file testo ed importo il dato.
pippo.exe lo compili come ActiveX-exe, gli metti dentro una classe pubblica 
che sarà quella che restituisce i dati, es.
file Dati.cls
Public Property Get DatoCalcolato As String
    DatoCalcolato = "Ciao ciao!"
End Property
Lo esegui e lo lasci andare.
Nell'altra app, che non so che linguaggio sia, aggiungi pippo.exe tra i 
riferimenti e fai qualcosa tipo
Dim d As Dati
Set d = new Dati
Dato = d.DatoCalcolato
E vualà :)
Se pippo.exe gira su un server e l'altra app no, la cosa diventa un po' più 
complessa.
Ciao

 Ciao
Grazie del consiglio sebbene non mi è proprio chiaro per via della non 
conoscenza del metodo.
I 2 programmi girano entrambi su una sessione terminal server.
Esiste qualcosa in rete (un esempio) per capire meglio come funziona?

 Esiste qualcosa in rete (un esempio) per capire meglio come funziona?
Non saprei dove viene spiegata 'sta roba, ma è piuttosto banale, proprio un 
paio di passaggi come ti dicevo, quindi direi di provare che fai prima.
Impostare l'app come ActiveX-exe lo fai nella finestra delle proprietà del 
progetto.
Ciao 

 Ciao
Infatti stavo provando ma .. non mi riesce un granchè!
Sono un po a pezzi e non riesco più a decodificare nulla.
Nel proprietà del progetto devo indicare un modulo di avvio che però non è 
più la Form di avvio che avevo prima.

 più la Form di avvio che avevo prima.
Ah, vero (stavo provando adesso) ma questo lo risolvi facile! :)
In un modulo ci metti
Sub Main()
    Form1.Show
End Sub
Ciao 

Se puoi modificare entrambi (pippo.exe e pluto.exe), ti consiglio una 
normalissima sessione winsock.
Non ti vai ad impelagare con tutti quei casini che sono gli activex, ed 
in pių puoi mettere pippo.exe e pluto.exe su due pc differenti in rete.
Il tutto funzionerebbe cosė:
Gestionale --> Pluto.exe  <-> Winsock <-> Pippo.exe
In questo caso pluto.exe potrebbe essere eseguito di volta in volta, 
mentre pippo.exe potrebbe restare attivo sul pc, in modo da non dover 
attendere il suo caricamento (che mi pare essere il vero problema).
bye