Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB] replicare la common dialog

    Ciaooooo....

    Qualcuno di Voi ha idea di come faccia il controllo common dialog a permettere di esplorare tutte le risorse di sistema?

    Per motivi diversi, ho bisogno di replicare il funzionamento della common dialog per salvare una "moltitudine" di file in un botto solo. Non voglio che l'utente inserisca il nome del file, perchè lo assegno io da codice.
    Vorrei solo capire come cavolo faccio a dire ad un controllo DirListBox che deve permettermi di esplorare anche le risorse di rete, perchè gli utenti potrebbero avere la necessità salvare su uno dei duemila server sparsi in giro...
    Il DirListBox mostra solo i driver mappati, e come ben sapete, non tutti gli utenti sono capaci di mappare un disco... l'explorer gli piace di piu' perchè gli fa vedere tutto senza sbattimenti...

    Idee ???

    Eventualmente, pensavo di modificare la common dialog disabilitando il text box del nome file, o con qualche altro stratagemma ... ma il problema resta: quella finestra non è conforme alle specifiche di layout...
    Insomma AIUTO.
    uffa

  2. #2
    mmm suggerirei di usare lo sfoglia cartelle dello shell32.dll
    Eccoti un esempio
    Quando clicchi:

    Private Sub Sfoglia_Click()
    On Error Resume Next
    Dim Id As BROWSEINFO
    Dim R As Long
    Dim s As String * 260
    R = SHBrowseForFolder(Id)
    If R = 0 Then Exit Sub
    If SHGetPathFromIDList(R, s) = 1 Then
    s = Left(s, InStr(s, Chr(0)) - 1)
    NomeCartella = Trim(s)
    CoTaskMemFree R
    End If
    End Sub


    Se vuoi chiarimenti dimmelo. La cartella selezionata la memorizza nella variabile nomeCartella.
    Ops, mancano le dichiarazioni per usare le api.

    Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpbi As BROWSEINFO) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)

    Ciao ciao
    Nulla si crea, nulla si distrugge, ma tutto si trasforma
    Il mio articolo ma vieniii

  3. #3
    mi sono dimenticato la struttura

    Private Type BROWSEINFO
    hwndOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
    End Type
    Nulla si crea, nulla si distrugge, ma tutto si trasforma
    Il mio articolo ma vieniii

  4. #4

    e la cartella iniziale?

    Sapete per caso come si fa ad impostare la directory iniziale dello "sfoglia cartelle"?

    grazie
    Riccardo

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    VEDERE IL FORUM PER VISUAL BASIC... NON INQUINATECI IL NOSTRO!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.