Newsgroup: it.comp.lang.visual-basic
Titolo: [?] shell ?

Cos'è che non va in questa riga di codice ?
-----Shell "format a:", vbHide---------
La risposta è :-------impossibile trovare il file--------
ciao e grazie.

...

Prova con Shell "
format.com
 a:", vbHide
Temo comunque che non funzionionera' come desideri, visto che il comando si
blocca aspettando che tu inserisca un floppy e poi prema Invio (lo puoi
verificare con ", vbNormalFocus" al posto di ", vbHide"); puoi provare a cercare
sul Sito Comune 
http://www.murialdo.it/it_lang_vb
 dove, se non sbaglio, c'e' un
esempio per invocare la finestra standard di formattazione...
Ciao
--
Luca Dormio
l...@sig-la.com
ldo...@tin.it

 La risposta è :-------impossibile trovare il file--------
Ragioniamo un po' insieme, vuoi?
"Impossibile trovare il file"... puo' dipendere da vari fattori, fra cui:
- Il file non esiste: ti sei accertato della sua presenza? Sai come si fa,
vero?
- Il file esiste ma il sistema operativo non lo trova perche' hai fornito
informazioni insufficienti o imprecise.
Nel tuo caso, dato che il file "format" e' uno dei file del sistema
operativo (una volta si diceva "format e' un comando dos esterno",
intendendo con questo che e' residente sul disco e viene caricato in memoria
quando richiesto dall'utente) nel tuo disco sara' sicuramente presente e il
problema e' di sintassi.
Quando apri una finestra "Prompt di MS-DOS" per formattare un dischetto e
digiti "format a:" il sistema operativo cerca nella cartella corrente un
file format .com o .exe o .bat, se non li trova inizia la ricerca nei
percorsi indicati nella variabile d'ambiente "PATH" (puoi leggere il valore
di queste digitando SET al prompt). Uno di questi percorsi e' quello che
contiene il file "
FORMAT.COM
", oltre agli altri file "dos": in Windows 95/98
e' "C:\WINDOWS\COMMAND", ma potrebbe essere benissimo un altro: dipende
dalla cartella che hai scelto per Windows al momento dell'installazione. Per
questo esiste un'altra variabile d'ambiente che "punta" alla cartella di
Windows: "WINBOOTDIR".
Il comando Shell non esegue questa ricerca: se trova il file nella cartella
da te indicata lo esegue, altrimenti ti segnala l'insuccesso con il
messaggio che sai. Se non indichi una cartella assume la cartella corrente,
quella puntata da App.Path.
Sembra a questo punto che basti riscrivere cosi':
Shell Environ("WINBOOTDIR") & "\COMMAND\
FORMAT.COM
 A:", vbHide
Considera pero' che cosi' facendo il programma girera' in finestra
nascosta... chi rispondera' alle domande seguenti?
1)
Inserire un nuovo disco per l'unita' A:
e premere INVIO quando pronti...
2)
Etichetta di volume (11 caratteri, INVIO per non darne)?
3)
Formattare un altro disco (S/N)?
Ma forse hai gia' considerato tutto questo. Diversamente fammi sapere.
Chiedo scusa al ng se mi sono dilungato un po' troppo.
--
Ciao.
Maurizio

>Chiedo scusa al ng se mi sono dilungato un po' troppo.
Figurati, ottima spiegazione!!! ;-))
Mi permetto solo di aggiungere una cosa:
Comunque per visualizzare la finestra di formattazione del floppy, basta usare:
Shell "rundll32.exe shell32.dll,SHFormatDrive"
Ciao,
Moreno
#sirri#@
tin.it
(togliete "#" dall'indirizzo)

 Shell "rundll32.exe shell32.dll,SHFormatDrive"
Giusto, ma gia' Luca Dormio gli aveva consigliato di guardare sul Sito
comune. A proposito, ti si e' rotto il Copia/Incolla e non hai potuto
scrivere il solito, benedetto:
"Sul Sito Comune di questo Newsgroup
www.murialdo.it/it_lang_vb
"?
Poi un'altra questione: pare che Fabrizio De Blasis non voglia visualizzare
alcunche'...
--
Ciao.
Maurizio

 Formattare un altro disco (S/N)?
A gentile richiesta:
1) Per un comando dos Invio corrisponde a ^M
2) Etichetta di volume, se non la vuoi dare, riga vuota, altrimenti scrivi
quello che vuoi, rispettando le regole per le etichette di volume
3) E qui basta rispondere N
Crea il file NomeCheVuoi.Niente (ovvero senza estensione ma, al limite,
potresti mettere l'estensione che vuoi, meglio .Txt se non ne puoi fare a
meno...) e con un editor, 
p.es
. notepad, scrivi le tre righe in questione:
1ma riga: ^M
2da riga:
3za riga: N
e "dallo da mangiare" al comando Format cosi':
Dim sFileRisposte As String
Let sFileRisposte = "C:\PercorsoCheVuoi\NomeCheVuoi"
Call Shell( _
    Environ("COMSPEC") _
  & " " _
  & "/CFormat A:/U<""" _
  & sFileRisposte _
  & """"
Se non ho toppato nella trascrizione dovrebbe funzionare. Se funziona e ti
risulta misterioso il perche', probabilmente a causa della tua giovane eta'
o per intorpidimento da mouse, posta e riceverai risposta.
--
Ciao.
Maurizio