General

6.113 Inserire un’icona nella SysTray di Windows e creare un Menù Popup Runtime personalizzato con le API.
  Alessandro Baraldi
Il database di esempio allegato sfrutta le API di Windows per gestire il posizionamento di un’icona nella SysTray della barra delle applicazioni di Windows e ne verifica gli eventi al passaggio del mouse.
La routine di inserimento dell’icona nella SysTray è stata presa da un esempio di Dev Ashish, mentre le routines per la creazione del Menu Popup Runtime e del suo funzionamento sono state prese da diversi esempi di manipolazione dei menu tratti da siti di VisualBasic. E’ bastato fare un collage delle due tecniche per ottenere un risultato discretamente funzionale… !
Forse l’unico neo è il ricorso alla tecnica del SubClassing per dirottare l’applicativo sulle routines al verificarsi degli eventi di gestione del mouse sull’icona.
Questa tecnica, se non ben conosciuta, può dare origine a crash di sistema che necessitano il riavviamento del computer… !
Il file SysTray.ICO che contiene l’immagine dell’icona deve essere inserito nella stessa directory che contiene il database.

Per provare l’esempio allegato, pigiare il pulsante di comando che contiene una piccola casa: nella barra delle applicazioni di Windows, a destra, vicino l’ora, comparirà un’icona a forma di piccola casa e che ha a destra la scritta “Attiva ICONA nella TrayBar”.
Cliccando con il tasto destro del mouse sull’icona di cui sopra, comparirà un menu popup dal quale è possibile scegliere un azione che riguarda un oggetto del database (Impostare un valore, aprire una maschera, eseguire un report ecc. ecc.); nell’esempio viene riportato in una casella di testo non associata il numero del menu selezionato.
La creazione del menu popup può essere personalizzata modificando adeguatamente la funzione buildMenu() contenuta nel modulo modMenu del database di esempio.
Le azioni da effettuare per ogni singola voce del menu popup selezionata possono essere impostate modificando adeguatamente la funzione trayIconRClick_UP() contenuta nel modulo modMenu del database di esempio.

L’esempio funziona solamente con la versione Access 97.
Per utilizzarlo anche con versioni successive è necessario eliminare il richiamo al SubClassing tramite la funzione AddrOf contenuta nel modulo basAddrOf, e rifarsi alla funzione nativa della versione Access 2000 ed Access 2002 (XP) AdressOff (documentata scarsamente nell’help).

Download:
 
  SysTray.zip (54Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.