Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
All'interno di Windows tutti i files e le cartelle hanno una finestra delle proprietà dove vengono mostrati i dati dell'elemento scelto, quali la dimensione, il percorso all'interno del file system, il tipo di oggetto e, per alcuni tipi di files, finestre aggiuntive.
Normalmente per accedere alla finestra delle proprietà di un file
basterà cliccare con il tasto destro del mouse sul file e scegliere
la voce Proprietà. Vedremo in questo semplice HowTo come richiamare la finestra delle proprietà
di un file attraverso la suddetta funzione API. Cominceremo proprio dal modulo standard:
Alla riga 3 abbiamo definito un nuovo tipo di dati di nome SHELLEXECUTEINFO. Tale struttura è richiesta dalla funzione API. Alle righe 21-23 abbiamo dichiarato tre costanti che utilizzeremo come parametri nella struttura SHELLEXECUTEINFO.
Infine, alla riga 25, abbiamo la dichiarazione della funzione ShellExecuteEx. Essa differisce dalla funzione ShellExecute, già vista in un altro HowTo ed in una richiesta dei lettori, per il fatto che permette di specificare una serie di parametri aggiuntivi che l'altra funzione non permette.
La nostra funzione si chiamerà ShowPropertiesDlg e richiede due parametri: il nome del file per il quale mostrare la finestra delle proprietà e l'handle della finestra chiamante. Alla riga 28 abbiamo dichiarato la variabile SEI di tipo SHELLEXECUTEINFO. Essa accoglierà tutti i parametri da passare alla funzione ShellExecuteEx. Così nelle righe 29-40 definiamo tali parametri: cbSize indica la dimensione della struttura, calcolata tramite l'istruzione Len; fMask definisce le modalità di visualizzazione e richiamo della funzione ed inseriremo i tre valori dichiarati prima come costanti; hWnd riceverà l'handle passato alla funzione; lpVerb richiede il nome dell'operazione da eseguire (properties); lpFile indica il nome del file per il quale eseguire l'operazione lpVerb. Tutti gli altri dati della struttura non saranno utilizzati in questa funzione, pertanto li lasceremo in bianco, cioè impostati a 0.
Finalmente alla riga 41 abbiamo la chiamata alla funzione ShellExecuteEx passandole come parametro la struttura SEI. Se la funzione ritorna valore 0, tale sarà anche il valore ritornato dalla nostra funzione ShowPropertiesDlg; se la funzione ritorna un valore diverso da 0, sarà necessario leggere il contenuto del campo hInstApp della struttura SEI. Terminata la scrittura del modulo standard possiamo passare alla progettazione del form che richiamerà la funzione appena vista.
Il form si compone di tre semplici controlli: una Labeldi nome Label1, una TextBoxdi nome txtFileName ed un CommandButtondi nome btnProperties. L'utilizzo dell'interfaccia è ovvio: basterà inserire il nome di un file nella casella di testo e premere il pulsante "Proprietà del file" per vedere apparire la finestra delle proprietà corrispondente. Prima di fare questo, è necessario scrivere il codice che controlla la pressione del pulsante btnProperties.
La routine che regola l'evento
Click del pulsante si compone di tre semplici righe.
Se il valore restituito dalla funzione è minore o uguale di 32, siamo in presenza di qualche errore, ad esempio il nome del file specificato non esiste. Se tale valore è minore o uguale di 32, verrà mostrata un messaggio di errore (riga 6). Proviamo il nostro progetto. Un click sopra il pulsante "Proprietà del file" mostrerà la finestra delle proprietà corrispondente. Nel caso avessimo inserito un nome di file errato, sarebbe apparso invece il messaggio di errore.
|
La separazione della funzione ShowPropertiesDlg in un modulo standard rende molto semplice il suo utilizzo all'interno di altri progetti. Roal
Zanazzi
|
Torna all'indice degli HowTo |