Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Common Dialog FileOpen con intervaccia tipo Explorer

Buongiorno a tutti.
(SO: XP VB: 6 SP: 6)
Vorrei riuscire aprire in un programma via codice, un CommonDialog
FileOpen, con visualizzazione del tipo 'Esplora' e non 'Apri'.
Intendo quella con due finestre affiancate, a destra la Tree con tutti
i drives, le cartelle e i nodi espandibili e a sinistra la directory
selezionata. Magari anche con la possibilit� di accedere alle opzioni
di visualizzazione (Icone grandi, piccole, elenco, dettagli etc.)
Cercando un po' qua e la' leggo che bisognerebbe usare il usare il
Flag cdlOFNExplorer (in unione con cdlOFNAllowMultiselect, altrimenti
non funziona) ma a me non funziona lo stesso. Ho provato anche con
varie combinazioni di flag ma non c'� niente da fare.
Intendiamoci, con un po' di fatica e di codice si pu� creare un form
personalizzato, con TreeView, DirList e File etc. ma io credo che,
magari invocando qualche API, si dovrebbe riuscire ad aprire la
finestra di visualizzazione files e Cartelle varie in formato
'Esplora'.
Tra l'altro a me piace molto la possibilit� di poter ordinare la
directory visualizzata, per Nome, per Dimensione, per Data ultima
modifica etc. con il click sulla barra, cosa che se si dovesse creare
un form personalizzato via codice come ho detto sopra richiederebbe un
po' troppo lavoro.
Insomma, � mai possibile che non si possa aprire la finestra
'Esplora'?
Qualcuno sa aiutarmi?
Grazie.
Filippo


devi lanciare explorer.exe /.... e non mi ricordo quale lettera forse n
oppure e
Pero' non ti restituisce un bel niete !!! (almeno per quanto ne so io)

 Qualcuno sa aiutarmi?
Come ti han detto non mi pare restituisca proprio nulla. Anche perch�
quello � un file manager e nient'altro.
L'unica � che ti fai una form ad hoc in cui fai tutto quello che ti serve.
Ma non � proprio velocissimo.
Secondo me il cliente va istruito a standardizzarsi con il comportamento di
windows ove possibile.

 ha scritto nel messaggio 
news:15i8655jm5e7pp95j...@4ax.com...

Quel che ti hanno detto � corretto: usando cdlOFNExplorer nei flags ottieni 
il tipo di visualizzazione che vuoi (con Vista lo ottieni comunque, forse 
anche con XP2 e 2003). P.es:
   CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or 
cdlOFNFileMustExist Or cdlOFNLongNames
   CommonDialog1.ShowOpen
Stefano

Stefano
Grazie della risposta.
Ma il punto � proprio questo: io uso esattamente i flags che dici tu
ma la finestra che si apre � sempre la stessa, con la stessa
visualizzazione.
L'unica cosa � che consente la selezione multipla (che poi non �
quello che sto cercando!!!)
Io dico, ma da Windows � possibile usare due diversi comandi: [Tasto
destro]+Apri e [Tasto destro]+Esplora, e la visualizzazione cambia.
Perch� non devo riuscirci da VB?
Grazie
Filippo

windows ove possibile.
Grazie della risposta.
Ma a me sembra che � porpio il comportamento di Windows che io non
riesco ad ottenere.
Infatti da Windows � possibile usare due diversi comandi: [Tasto
destro]+Apri e [Tasto destro]+Esplora, e la visualizzazione cambia.
Perch� non devo riuscirci da VB?
E soprattutto perch� la documentazione (nonch� la risposta di Stefano
Minardi che segue) mi suggerisce il Flag con cui dovrebbe apparire la
visualizzazione in formato Esplora e a me non funziona?
Grazie
Filippo

 Perch� non devo riuscirci da VB?
Perch� non stai usando Explorer, ma la CommonDialog,
e la CommonDialog non mi risulta che faccia quello che cerchi.
Basta come risposta ? :-)
Bye, G. 

Bye, G. 
Si questo lo capisco.
Mi chiedo:
a) a che serve il flag della CommonDialog cdlOFNExplorer, cio� che
cosa cambia allora se uso o non uso questo stramaledetto flag 
b) se sia possibile (era la domanda originale del post) ottenere
quello che chiedo con una qualche chiamata API
(ma forse ho capito, non si tratta di funzioni 'native' di windows ma
di una vera e propria applicazione del S.O., appunto explorer.exe
mannaggia!!!)
grazie
Ciao
Filippo

 quello che chiedo con una qualche chiamata API
http://tinyurl.com/l6taxn
-- 
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 quello che chiedo con una qualche chiamata API
Questo � ottimo!
http://tinyurl.com/nn5prz


 
http://tinyurl.com/nn5prz
Si ma c'� un treeview, insomma non � la finestra di windows (cio� se la
lanci su vista,win7, xp avr� la skin dell'os).

 visualizzazione in formato Esplora e a me non funziona?
Non funziona manco a me, sar� qualche flag che valeva per win98 o simile.
Ma come ti ripeto explorer.exe non seleziona file e ti dice cosa hai
selezionato. Sarebbe un po' come chiedere se word pu� disegnare un file
autocad.
Non lo fa e non lo prevede. E nessuna API pu� far fare qualcosa ad un
programma che non lo prevede.
Poi se cercando a fondo trovi il sistema di farlo bene, ma la vedo dura.
La cosa pi� semplice, se proprio la vuoi, � costruirtelo da solo.

 Filippo
Non so su quale SO stai lavorando, io purtroppo ho solo dei Vista a portata 
di mano e su questi la commondialog funziona esattamente come vorresti tu. 
Mi pare di ricordare che su XP il layout e le funzionalit� fossero molto 
simili (a parte le cartelle tipiche di Vista). Ovvero: se apri la dialog e 
fai click-destro ottieni il men� con 'apri', 'esplora', 'nuovo', etc.
Explorer � un'applicazione che non puoi richiamare da programma se non per 
la semplice esecuzione, come ogni altra applicazione. Il modo per interagire 
� appunto quello di usare le common dialog.
Il flag 'maledetto' serviva nei vecchi SO nei quali la visualizzazione di 
default era in stile Windows3: con l'introduzione di nuovi layout, nomi 
lunghi etc. (Win95) si rese necessario qualche flag per richiedere queste 
funzionalit�.
Stefano

 lanci su vista,win7, xp avr� la skin dell'os).
Se leggi il post iniziale...
Filippo ha scritto...

...� esattamente quanto richiesto!
Io credo che tu non l'abbia neanche provato l'esempio in questione!


Beninteso, questa non � una CommonDialog!
Ma a questo punto ha tutti gli elementi necessari
per realizzarla velocemente e senza tanta fatica!
Il pi� � fatto... :)


Il pi� � fatto... :)
Proprio cos�, infatti mi pare un ottimo punto di partenza.
Grazie mille
Filippo

 Il pi� � fatto... :)
Ma non � explorer.
Ad esempio non  utilizza i layout cartella impostati, tant'� che ogni volte
devo mettere dettagli.
Manca indietro/avanti/sopra, manca la barra degli indirizzi, la status bar
� ovviamente custom, e la toolbar manca.
Con Vista e simili non so poi come viene visualizzata.
Insomma per avere le cose richieste dall'OP uno deve comunque lavorarci.
Che sia un buon punto di partenza ok.
Ora non ho provato, ma il select del file lo fa o lo apre?
Perch� se � cos� tanto vale fare una shell di explorer.exe.
Comunque rimango della mia idea che inventarsi certe cose �
controproducente, cio� almeno che non ti paghino per fare proprio una cosa
del genere (o non serve a te personalmente), meglio standardizzarsi e usare
le cose che ci sono nel 99% degli altri sw.
Anche perch� quando mi son trovato davanti quella form � stata sicuramente
meno user friendly di una commondialog, immagino per un utente che sa a
fare a malapena copia incolla dal menu modifica e non col tasto destro o
con la tastiera...

le cose che ci sono nel 99% degli altri sw.
Tutto sommato credo proprio che tu abbia ragione, per lo meno in
generale.
Per quanto mi riguarda io mi impicco (!) con VB per mio esclusivo
piacere, non mi paga nessuno, e i programmi che faccio sono solo per
me.
Qualcosa di non banale l'ho anche fatta soprattutto ai tempi del
DOS/QUICK BASIC/ASSEMBLY
L'avvento del Visual/Oggetti/Classi etc. mi ha steso...... ma non
demordo, � esclusivamente un mio piacere intellettuale.
Ma se rinasco..................
Grazie di tutto e ciao.
Filippo

 DOS/QUICK BASIC/ASSEMBLY
Infatti se serve per te era uno dei motivi che ritenevo validi.
Ma se � per te puoi fare una shellexecute di explorer e poi fare il
drag&drop in un'area del tuo sw e in quel modo recuperare il file
indirettamente.
Insomma fare un doppioclick per "selezionare" o trasciare il file dove vuoi
non cambia molto.
Oppure in SendTo di windows ti aggiungi una shortcut al tuo sw e da l�
forse fai qualcosa.

 On Wed, 22 Jul 2009 07:13:28 GMT, "Andrea [Work]"
zac
se è per puro piacere intellettuale...
allora molla tutto!
Usa/impara Java
Se vuoi tutto gratis
Linux+Java....curva all'inizio un po ripida (ma se sei al livello di
smanettare di api....non più di tanto!)
Che ci fai poi?
Di tutto...per dire (una cosa che in questi giorni è di moda in un
altro 3ead)
un "pazzo" ci ha fatto un clone del flash server si chiama red5
http://code.google.com/p/red5/
un altro "pazzo" lo ha preso mischiato con java apache/Tomcat +
qualche altra libreria e ci ha fatto un sistema di videoconferenza
adatto per l'elearning : si chiama openmeetings
http://code.google.com/p/openmeetings/
...oppure....se vuoi rimanere sempre in ambito "zioBill"...scaricati
VStudio express 2008 + fw 3.5 sp1
e dilettati con c#  (o 
vb.net
)....e LINQ to "qualcosa"
o con la grafica...
io sto spippolando in questi giorni di studio con "linq to dataset"
e mi si aprono strade che prima o poi porterò in produzione (più prima
che poi!)...
in conclusione....se vuoi farti una "sega mentale"...almeno fattela
bella: che ne valga la pena!

VStudio express 2008 + fw 3.5 sp1
Mi piacerebbe, non credere ma.... chi me lo da' il tempo di imparare
tutte 'ste cose?
Faccio prima a smettere del tutto (... e fai bene!!!!)
Grazie del suggerimento ma purtroppo non credo di riuscire a farcela.
Ma, come ho gi� detto ad Andrea, se rinasco........
Ciao
Filippo