Eseguire un exe tramite la funzione shell e Appl.Path

mercoledì 07 gennaio 2009 - 17.54

zabbia Profilo | Newbie

vorrei eseguire, cliccando su un Command, un eseguibile esterno che si trova in una cartella diversa rispetto al programma di lancio

shell app.path & "\Prova\Prova.exe", vbnormaluse

Prova è la cartella dove si trova il programma da eseguire e prova .exe è il programma da mandare in esecuzione.

mi segnala come errore che app.path is empty

angelotv Profilo | Guru

potresti usare il percorso relativo e saltare il problema
shell "Prova\Prova.exe", vbnormaluse
però è strano che app.path non abbia nessun valore quando dovrebbe contenere il percorso dell'applicazione (prova a visualizzarlo in debug o con un msgbox).
ma che versione di Visual Basic usi?
by Angelo

zabbia Profilo | Newbie

Gent. Angelo,
grazie per avermi risposto. Uso Visual Basic 6.0 Service Pack 6
Il programma VB che utilizzo è nella Cartella Prova, mentre il programma exe che vorrei
mandare in esecuzione è nella Cartella Prova2.
Se utilizzo questa stringa : Shell App.Path & "\Prova2\Prova.exe", vbMaximizedFocus
non funziona.
Se metto il programma Prova.exe nella Cartella Prova con questa stringa
Shell App.Path & "\Prova.exe", vbMaximizedFocus
funziona correttamente.
Però io vorrei accedere al programma da eseguire che è posto in una cartella diversa .
Cordiali saluti
Zabbia

angelotv Profilo | Guru

la cartella prova2 è una sottocartella della cartella prova? se così fosse dovrebbe funzionare.
by Angelo

zabbia Profilo | Newbie

Gent. Angelo,

la cartella prova2 non è una sottocartella di prova

zabbia

angelotv Profilo | Guru

Se è così è ovvio che non va!
devi scrivere Shell App.Path & "..\Prova2\Prova.exe" perchè prima di andare a lanciare il file nella cartella prova2 il sistema deve andare su di un livello (visto che immagino che prova e prova2 siano due sottocartelle di una stessa cartella).

by Angelo

zabbia Profilo | Newbie

Io ho una cartella con un programma di VB6 ( Cartella Prova )
Poi ho un'altra Cartella che è Prova2 contenente il programma che devo lanciare
e che non è una sottocartella di Prova, ma sono due Cartelle distinte.
Nel mio disco ho questa situazione :
C:\Prova
C:\Prova2

Prova contiene il Programma VB6, mentre Prova2 contiene uìil file exe da lanciare
zabbia

angelotv Profilo | Guru

quindi devi scrivere Shell App.Path & "..\Prova2\Prova.exe" perchè prima di andare a lanciare il file nella cartella prova2 il sistema deve andare su di un livello

by Angelo

zabbia Profilo | Newbie

Se scrivo Shell App.Path & "..\Prova2\Prova.exe", vbMaximizedFocus
come da te indicato, mi da errore.
Forse occorre inseriredelle parentesi ?

By zabbia

angelotv Profilo | Guru

che errore ti da? e poi perchè non memorizzi da qualche parte il pathname completo dell'applicazione da lanciare?
by Angelo

zabbia Profilo | Newbie

Mi da, come errore, che è impossibile trovare il percorso.
Shell App.Path & "..\Prova2\Prova.exe", vbMaximizedFocus

Se utilizzo il Debug, in effetti su App.Path mi indica la Cartella da dove viene lanciato
il programma VB6, ma poi in Prova2 non va.
Se tu hai un programma Exe da lanciare che si trova in una Cartella diversa rispetto
al Progr. VB6 puoi verificare se il tutto funziona.
IL programma VB6 ha solo in Command con la riga della shell da lanciare

By zabbia

zabbia Profilo | Newbie

Angelo,

non ho più visto nessuna ulteriore risposta in merito al
mio problema.
Anche tu ti sei arenato o hai avuto altri impegni !!

By zabbia

Dainesi Profilo | Senior Member

Il consiglio di utilizzare la path completa senza l'uso di AppPath è più che valido. Ricordati inoltre di controllare la presenza, assenza o duplicazioni dei back slash.
Autore del libro sul FOREX, MetaTrader e creazione dei trading system http://ilmiolibro.kataweb.it/schedalibro.asp?id=115872
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5