PDA

Visualizza la versione completa : [vb] urgente Passaggio....


snap_ml
02-07-2002, 12:01
Ciao a tutti,
e' possibile lanciare una applicazione con il comando Shell di vb e passargli un parametro?
Se e' possibile come faccio poi a sapere nel programma lanciato il valore della variabile passata?

Vi prego AIUTOOOO

amodio
02-07-2002, 12:04
no non puoi farlo mi scpiace

con schell l'unico parametro l'exe e poi il file da aprire es:

shell("c:/exploreer.exe" "c:/immagine.jpg")

no niente parametri

riky78
02-07-2002, 12:12
invece si pu...
in effetti il file che l'applicazione deve aprire un parametro...

shell("applicazione.exe " & par1 & "," & par2)

poi per recuperare i parametri:

dim params()
parmas=split(command,",")

e params un array contente i valori par1 e par2




:ciauz:

snap_ml
02-07-2002, 12:26
Grazie ,ma
Non mi e' chiaro come posso recuperare i parametri dall'eseguibile:
Split(command)????????

riky78
02-07-2002, 12:31
mi spiego meglio...
la stringa che passi a Shell deve essere tipo questa:

"applicazione.exe 5,9,10,25"

quindi in effetti non passi dei parametri a Shell, ma all'applicazione Applicazione.exe

Dentro a questa devi recuperare i parametri con la funzione command.
In questo caso command ti restituisce una srtinga contenente i parametri ( "5,9,10,25" ). La funzione split prende una stringa e costruisce un array dividendo la stringa in base al secondo parametro.
Quindi se chiami

params=Split(command,",")

prende la stringa restituita da command e costruisce un array con i parametri:;

params(0)=5
params(1)=9
params(2)=10
params(3)=25

meglio?

snap_ml
02-07-2002, 13:50
Va' Benissimo Ti ringrazio!!!
Ma c'e' solo un problema: non mi consente di lanciare piu' di due eseguibili dello stesso programma!!!!
Secondo te e' dovuto a un problema di codice? oppure c'e' qualche arcano mistero?

Ti spiego cosa faccio:
Ho una griglia;
ogni volta che ci clicco sopra lancio un eseguibile;
quest'eseguibile fa' un collegamento DDE ad un altro form del programma che contiene la griglia;
tutto funziona bene (grazie a te), solo che dopo aver lanciato due volte l'eseguibile (cioe' dopo aver cliccato per due volte sulla griglia), non mi consente di aprirne altri ossia dopo il secondo non va' avanti, se chiudo uno degli eseguibili aperti precedentemente invece, e riclicco sullo stesso rigo della griglia funziona!:confused:
L'errore che mi da' e':"no foreign application responded to a dde initiate"!
che potrebbe sembrare un errore di connessione, ma se cosi' fosse, perche' a due alla volta funziona?
Spero di essere stato abbastanza chiaro
Grazie per i tuoi consigli

riky78
02-07-2002, 13:53
figurati...
x per questo nuovo problema non so aiutarti.....sorry!

Loading