Newsgroup: it.comp.lang.visual-basic
Titolo: Lancio di un programma.

Ciao a tutti, ho fatto una piccola applicazione in vb e ho generato
l'eseguibile: "MiaApplicazione.exe"
Se lancio l'applicazione funziona perfettamente, ma se la voglio richiamare
con con shell("c:\temp\MiaApplicazione.exe",1)
da un'altra applicazione vb, la mia applicazione mi ritorna l'errore di
run-time 76. Non so cosa fare. Qualche idea con esempio?
Uso Vb5 e ho visto che non posso usare CreateProcess o ShellExecute. Non so
cosa siano ma leggendo post passati qualcuno ha suggerito di usare questo
per problemi simili al mio.
Grazie mille.
Andrea.

 Uso Vb5 e ho visto che non posso usare CreateProcess o ShellExecute.
Perché no ? :-O
Bye, G.

grazie per aver risposto, uso:
Dim retval
retval = Shell("D:\Andrea\VisualBasic\MiaApplicazione.exe",1)
e l'indirizzo è giusto, infatti mi dà errore 76 dicendomi che è impossibile
trovare il percorso specificato ma se dò ok, mi fa partire solo il frame
principale della mia applicazione che però non funziona, i tasti in essa
contenuti non rispondono. Strano! Hai un idea?
Ciao e grazie ancora.
Andrea.
"Paperino" <non...@lo.dico> wrote in message
news:ast9cd$1nk8$1...@stargate1.inet.it...


 contenuti non rispondono. Strano! Hai un idea?
...mi sa che ho capito... l'errore viene dall'applicazione lanciata,
non da quella lanciante. Cioè, è MiaApplicazione.exe che non
trova qualcosa, quindi l'errore è nel codice di quell'applicazione.
Di solito è perché stai cercando di aprire un file di cui dai il
nome senza il percorso completo. Quando lanci l'app da una
directory diversa dalla solita, non trova più il file che cerca di
aprire. In questi casi ti dovrebbe dare una mano l'help alle voci
App.Path, ChDir, ChDrive e CurDir ;-).
Bye, G.

si è l'applicazione lanciata che dà problemi.
adesso cercerò ti seguire i tuoi consigli per risolvere la cosa. Per ora
grazie.
Andrea.
"Paperino" <non...@lo.dico> wrote in message
news:astklu$5qf4$1...@stargate1.inet.it...


nulla da fare ho fatto delle prove ma l'applicazione che lancio dà sempre lo
stesso errore mentre se vado a fare doppio click su MiaApplicazione.exe
parte correttamente.
A questo punto la mia conclusione è che la shell non corrisponde esattamente
come quando si fa doppio click sul file. Questo è poco ma chiaro. Ora
chiedo, c'è un altro modo per lanciare un eseguibile? Magari con delle Api?
CIAO.
Andrea.
"Paperino" <non...@lo.dico> wrote in message
news:astklu$5qf4$1...@stargate1.inet.it...


 chiedo, c'è un altro modo per lanciare un eseguibile? Magari con delle Api?
Io, al posto tuo, mi chiederei perché un'applicazione lanciata col
doppio click parte e lanciata da shell no... e nel post di prima, che
ho parzialmente riportato sopra, ti ho anche detto dov'è la differenza
e suggerito dove guardare per risolvere.
Bye, G.

 Andrea.
Prova a mettere nel MainForm all'evento load dell'applicazione questa
stringa
ChDir=App.Path
E vedi che succede
Ti spiego forse il perchè ti accade l'errore:
Tu hai l'applicazione A in C:\Directory1\  e l'applicazione B in
C:\Directory2\
Dall'applicazione A chiami la B
L'applicazione B (visto che Visual Basic in sostanza è un gran cretino)
crede che sta funzionando in c:\Directory1\
Ora bisogna fargli capire che invece sta funzionando su C:\Directory2 !!!
ChDir serve a questo...
Se non ti funziona mettendolo nell'evento Load del Form di Avvio
dell'applicazione B allora mettilo subito prima della chiamata Shell ma in
questa forma
ChDir="C:\DirectoryDoveHaiLapplicazioneB"
Vedrai che funzionerà
Ciao

Finalmente ora ho capito appieno ed č tutto ok.
Grazie mille.
Grazie comununque anche a Paperino che pensava che le mie conoscenze fossero
maggiori e invece ho ancora bisogno di spiegazioni piů semplici con esempi.
Spero che tra un pň riuscirň a capire un pň prima anche solo con indicazioni
e aiutandomi con l'Help.
CIAO.
Andrea.