Oppure:
1a soluzione:
associare lo SHELL con WAIT associato ad un processo con:
DIM Comando AS String
DIM Processo AS Process
Comando = "crei la stringa del tuo comando"
Processo = SHELL (Comando) WAIT
Crei il processo e lo associ ad un oggetto di tipo Process, che poi puoi gestire.
2a soluzione:
usare il reindirizzamento di SHELL su una variabile:
DIM Comando, Risultato AS String
Comando = "crei la stringa del tuo comando"
SHELL Comando TO Risultato
'--gestisci il risultato
.......
Con questa sintassi l'esecuzione del programma è sospesa fino a quando SHELL non ha terminato l'esecuzione di Comando ed ha restituito il risultato in Risultato.
Questa seconda versione è simile alla prima con la differenza che hai il risultato disponibile in una variabile (es. il suo output: "ls -la").
Buonanotte....
Secondo voi avendo il codice allegato dove lo devo schiaffare un WAIT per evitare che mi si freezi l'interfaccia ????
Considerando che non è tanto il loop a freezare ma la dimesione del singolo file che copio a romper le balle ....
FOR EACH item IN source
IF IsDir(item) THEN
MKDIR destination &/ File.Name(item)
FOR EACH subitem IN RDir(item, "*")
IF IsDir(item &/ subitem) THEN
MKDIR destination &/ File.Name(item) &/ subitem
ELSE
COPY item &/ subitem TO destination &/ File.Name(item) &/ subitem
ENDIF
NEXT
ELSE
TRY COPY item TO destination &/ File.Name(item)
ENDIF
NEXT
DIM hProcess AS Process
FOR EACH item IN source
IF IsDir(item) THEN
MKDIR destination &/ File.Name(item)
FOR EACH subitem IN RDir(item, "*")
IF IsDir(item &/ subitem) THEN
hProcess = MKDIR destination &/ File.Name(item) &/ subitem WAIT
ELSE
hProcess = COPY item &/ subitem TO destination &/ File.Name(item) &/ subitem WAIT
ENDIF
NEXT
ELSE
TRY hProcess = COPY item TO destination &/ File.Name(item) WAIT
ENDIF
NEXT
Prova a far così (non ho provato il codice).