Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
La funzione SHQueryRecycleBin (Tutorial completo)

L'API in questione riceve informazioni dal Cestino e determina le sue dimensioni ed il numero di files in esso contenuti.
La dichiarazione della funzione corrisponde al seguente blocco:

Declare Function SHQueryRecycleBin Lib "shell32.dll" Alias _ "SHQueryRecycleBinA" (ByVal pszRootPath _
As String, pSHQueryRBInfo As SHQUERYRBINFO) As Long

Come spesso accade, il valore di ritorno della funzione è un intero a 32 bit. Se tale valore è pari a 0, significa che si è verificato un errore nell'esecuzione della funzione. In caso di perfetto funzionamento, il valore di ritorno sarà un intero diverso da zero.
Diamo ora un'occhiata ai parametri necessari all'API SHQueryRecycleBin:

pszRootPath Indica il percorso del Cestino all'interno del drive specificato. Nel caso in cui ci si voglia riferire al Cestino del sistema, sarà sufficiente indicare il percorso "C:\".
pSHQueryRBInfo Indica le dimensioni in bytes del Cestino del drive specificato dal parametro pszRootPath ed il numero di files in esso contenuti.

Prima di poter chiamare la funzione è però necessario definire la struttura SHQUERYRBINFO ed in particolare il membro cbSize che ne indica le dimensioni.
La struttura in questione è la seguente:

Type SHQUERYRBINFO
cbSize As Long
i64Size As ULARGE_INTEGER
i64NumItems As ULARGE_INTEGER
End Type

Non bisogna preoccuparsi della definizione della struttura ULARGE_INTEGER che al fine dell'utilizzo della funzione è del tutto superflua.
Basti sapere che è così indicata:

Type ULARGE_INTEGER
LowPart As Long
HighPart As Long
End Type


Ritornando alla struttura SHQUERYRBINFO possiamo aggiungere che essa archivia tutte le informazioni legate al Cestino. Informazioni che sono rispettivamente le dimensioni dello stesso e gli oggetti contenuto in esso. E Cestino che può essere il Cestino di ogni drive, se presente.
Elenchiamo qui di seguito i membri della struttura:

cbSize Indica le dimensioni in Bytes della struttura
i64Size Indica le dimensioni in Bytes del totale dei files contenuti nel Cestino
i64NumItems Indica la quantità di files contenuti nel Cestino

Terminiamo con un esempio. Vogliamo visualizzare in una finestra di messaggio se e quanti files sono contenuti nel Cestino del sistema, nella directory "C:".
Dichiariamo dunque l'API e le due strutture complete di ogni loro membro, usando per ognuno di essi la notazione Private in modo da poterli utilizzare nel codice della form invece di dover aprire un nuovo modulo:

Private Declare Function SHQueryRecycleBin Lib "shell32.dll" Alias _ "SHQueryRecycleBinA" (ByVal pszRootPath _
As String, pSHQueryRBInfo As SHQUERYRBINFO) As Long
Private Type ULARGE_INTEGER
LowPart As Long
HighPart As Long
End Type
Private Type SHQUERYRBINFO
cbSize As Long
i64Size As ULARGE_INTEGER
i64NumItems As ULARGE_INTEGER
End Type

Adesso, all'interno dell'evento Load di Form, indichiamo con InfoSulCestino come contenitore di informazioni sul Cestino e ValoreDiRitorno, il valore che restituirà la funzione. Inizializziamo quindi le dimensioni della struttura:

Private Sub Form_Load()
Dim InfoSulCestino As SHQUERYRBINFO
Dim ValoreDiRitorno As Long
InfoSulCestino.cbSize = Len(InfoSulCestino)

Ora chiamiamo la funzione indicando "C:\" come percorso:

ValoreDiRitorno = SHQueryRecycleBin("C:\", InfoSulCestino)

Infine visualizziamo due finestre di messaggio che ci indicheranno il numero di files (o cartelle, in generale oggetti) contenuti nel Cestino e le dimensioni totali dello stesso. Chiudiamo la sottoprocedura con End Sub:

MsgBox "Il Cestino contiene " & InfoSulCestino.i64NumItems.LowPart & " oggetti"
MsgBox "Le dimensioni del Cestino sono pari a " & InfoSulCestino.i64Size.LowPart _
& "bytes"
End Sub

Ecco per concludere il codice completo di quest'esempio:

Private Declare Function SHQueryRecycleBin Lib "shell32.dll" Alias _ "SHQueryRecycleBinA" (ByVal pszRootPath _
As String, pSHQueryRBInfo As SHQUERYRBINFO) As Long
Private Type ULARGE_INTEGER
LowPart As Long
HighPart As Long
End Type
Private Type SHQUERYRBINFO
cbSize As Long
i64Size As ULARGE_INTEGER
i64NumItems As ULARGE_INTEGER
End Type
Private Sub Form_Load()
Dim InfoSulCestino As SHQUERYRBINFO
Dim ValoreDiRitorno As Long
InfoSulCestino.cbSize = Len(InfoSulCestino)
ValoreDiRitorno = SHQueryRecycleBin("C:\", InfoSulCestino)
MsgBox "Il Cestino contiene " & InfoSulCestino.i64NumItems.LowPart & " oggetti"
MsgBox "Le dimensioni del Cestino sono pari a " & InfoSulCestino.i64Size.LowPart _
& "bytes"
End Sub


Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it