![]() |
![]() Sincronizza Indice |
![]() Scarica il progetto |
![]() Testo dell'articolo |
![]() Stampa l'articolo |
Un'attività molto comune è quella di richiedere l'apertura dell'applicazione predefinita per un documento, ad esempio richiedere l'apertura del browser con riferimento ad un sito internet oppure avviare il Blocco note per visualizzare il contenuto di un file di testo o il lettore multimediale per ascoltare un brano audio. La problematica è stata affrontata anche in altri articoli ma, viste le continue richieste, ho deciso di pubblicare un articolo dedicato principalmente alla funzione ShellExecute.
Al di sotto di questa esiste un'altra etichetta puramente descrittiva e la relativa casella di testo txtDocumento; essa conterrà il percorso del documento da aprire. Il primo pulsante cmdAvvia richiamerà l'applicazione predefinita per il documento indicato, mentre il secondo pulsante cmdTrovaApplicazione mostrerà il percorso completo dell'applicazione che verrà richiamata. Il codice di questo form è altrettanto semplice:
Sono state dichiarate due funzioni dell'API: ShellExecute come
già accennato richiamerà l'applicazione predefinita per
il documento specificato nell'argomento lpFile, ma esiste
anche un altro argomento importante di questa funzione; si tratta di lpOperation
che consente di specificare il verbo da eseguire (si raccomanda la consultazione
delle Informazioni aggiuntive sulla Registrazione
delle Estensioni in Windows): open è il verbo predefinito
per richiedere l'apertura del documento e quindi l'avvio dell'applicazione
relativa ma per molte estensioni esistono ulteriori verbi: print
ad esempio avvia l'applicazione ed effettua la stampa del documento, opennew
avvia la pagina web utilizzando una finestra separata e così via.
Tutti i verbi sono indicati all'interno del registro
di Windows e dipendono dalle singole estensioni. Gli argomenti lpParameters,
lpDirectory e nShowCmd consentono rispettivamente
di specificare parametri aggiuntivi nell'esecuzione del comando, di indicare
la cartella da cui avviare l'applicazione e la modalità di presentazione
della finestra come indicato nell'enumerazione
L'altra funzione FindExecutable semplicemente ricevendo il percorso di un documento restituisce il percorso dell'applicazione dedicata all'esecuzione.
All'avvio della nostra applicazione la casella txtDocument conterrà il percorso del file INFO.TXT contenuto nella cartella del programma; questo solo per inizializzare i controlli e presentare il percorso di un documento sicuramente esistente.
Al click sopra l'etichetta lblCollegamento sarà richiamata la funzione ShellExecute per richiedere l'apertura del browser (o più precisamente dell'applicazione dedicata alla visualizzazione degli indirizzi con protocollo http). Il verbo specificato è open, il predefinito per l'esecuzione, mentre il documento da avviare è il percorso indicato nell'etichetta stessa (http://www.vbsimple.net). L'ultimo argomento vbMaximizedFocus indicherà di mostrare la finestra in maniera ingrandita e attivata.
In maniera analoga alla precedente, il click sopra il pulsante cmdAvvia avvierà l'applicazione predefinita per il documento indicato nella casella txtDocumento, sempre utilizzando il verbo open. A differenza dal caso precedente non sarà modificata la visuailzzazione della finestra ma indicando la costante vbNormalFocus sarà mostrata semplicemente la finestra senza.
L'ultimo evento è quello legato al pulsante cmdTrovaApplicazione che si occuperà di riportare il percorso dell'applicazione dedicata all'apertura del documento. Allocato il buffer (riga 21) basterà chiamare la funzione FindExecutable specificando il percorso del documento per ricevere il percorso dell'applicazione all'interno del buffer preallocato.
Sarà naturalmente necessario eliminare il carattere Null finale alla stringa di testo restituita. Il risultato ottenuto è il seguente:
Al passaggio del cursore del mouse sopra l'etichetta sarà mostrata la manina tipica dei collegamenti ipertestuali (Figura 2) ed al click verrà avviato il browser e mostrata l'home page di VBSimple; al click del pulsante Trova applicazione sarà indicato il percorso dell'applicazione dedicata all'esecuzione per l'avvio del documento specificato nella casella di testo (Figura 3); il click sul pulsante Avvia invece avvierà l'applicazione e quindi il documento indicato (Figura 4). Alla stessa maniera può essere avviato anche il programma di posta elettronica predefinito semplicemente richiedendo l'apertura di un documento composto da mailto: e seguito dall'indirizzo di posta elettronica; questa tecnica è stata trattata nell'HowTo dedicato all'invio di un'email tramite un programma esterno. |
La funzione ShellExecute si presta a tantissime operazioni, alcune delle quali già indicate, altre trattate invece in altri articoli di questa sezione. Fibia
FBI
|
![]() |