IL NAMESPACE MY


Una delle novità più interessanti di Visual Basic 2005 è il namespace My , introdotto per fornire un accesso rapido a classi importanti del framework. Vediamo brevemente di cosa si tratta:
  • My.Application rende disponibili informazioni sull'applicazione Windows Form o Console, il persorso da dove è stata lanciata, le informazioni assembly come le CultureInfo e la versione, la modalità di autenticazione dell'utente e i permessi
  • My.Computer (l'oggetto più ricco del namespace My) permette di interagire con le periferiche quali mouse, tastiera, stampanti, porte seriali, con la memoria e il file system ed infine, con i file audio e la clipboard (appunti).
  • My.User permette di ottenere informazioni sull'identità dell'utente attualmente autenticato.
  • My.Forms fornisce le proprietà per l'accesso all'istanza di ogni forms di Windows dichiarata nel progetto corrente.
  • My.Settings fornisce proprietà e metodi per accedere al file di configurazione dell'applicazione (app.config). Ogni proprietà corrisponde ad un'impostazione definita nei Settings del progetto e viene supportata dinamicamente con l'intellisense di Visual Studio.
  • My.Resources contiene gli oggetti (icone, immagini, stringhe, file di testo) che fanno parte del progetto. Permette inoltre di effettuare operazioni su queste risorse che altrimenti verrebbero fornite come file esterni.
  • My.WebServices consente di usare i servizi web / metodi web.

Vediamo ora qualche esempio:

My.Application espone l'oggetto Log i cui metodi permettono di interagire con il file di log dell'applicazione, riportando i messaggi di errore riscontrati a run-time.
Per scrivere qualcosa nel file di log basta fare così:
My.Application.Log.WriteEntry("Messaggio/Errore...")               
oppure
My.Application.Log.WriteEntry("Messaggio/Errore...",TraceEventType.Information)               
Per fare questo però, bisogna agire anche sul file app.config .
<sources>
    <!-- Questa sezione definisce la configurazione di registrazione per My.Application.Log -->
    <source name="DefaultSource" switchName="DefaultSwitch">
        <listeners>
            <add name="FileLog"/>
            <!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante -->
            <!--<add name="EventLog"/>-->
        </listeners>
    </source>
</sources>               
Altre proprietà, metodi ed eventi interessanti di My.Application sono
  • CommandLineArgs contenente gli argomenti della linea di comando
  • OpenForms contenente la collection dei forms aperti
  • GetEnvironmentVariable(nome_variabile) restituisce il valore della variabile d'ambiente [nome_variabile]
  • DoEvents elabora tutti i messaggi di Windows attualmente presenti nella coda di messaggi
  • NetworkAvailabilityChanged che si verifica quando cambia la disponibilità di connessione della rete
  • StartUp e ShutDown che si scatenano rispettivamente all'avvio e alla chiusura dell'applicazione


My.Computer.Audio permette l'esecuzione di un suono in modo sincrono o asincrono
My.Computer.Audio.Play("c:\suono_da_eseguire.wav", AudioPlayMode.Background)                
'Verrà eseguito suono_da_eseguire.wav in background
My.Computer.Audio.Stop() 'Verrà fermata l'esecuzione del suono
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Beep) 'Esegue un suono di default di Windows
My.Computer.Clipboard 'permette l'accesso agli "appunti" di sistema
My.Computer.Clipboard.SetText("Testo che verrà copiato nella clipboard di sistema") 'Memorizza la stringa negli appunti di sistema
My.Computer.Clipboard.GetText() 'Restituisce il testo contenuto negli appunti in formato String
My.Computer.Clipboard.Clear() 'Pulisce la clipoard
L'oggetto My.Computer.Clipboard contiene metodi specifici (che iniziano per get e set) per ogni tipo di dato contenuto (immagini, testo, audio o elenco file) e in più un metodo generico SetData utilizzabile per tipi diversi da quelli elencati in precedenza. Ovviamente, questi tipi diversi devono avere obbligatoriamente l'attributo Serializable.

My.Computer.FileSystem permette di operare sui file e sulle cartelle. Vediamo alcune proprietà:
  • CopyDirectory e CopyFile copiano directory o file in un'altra zona del file system
  • DeleteDirectory e DeleteFile eliminano la directory ed il file
  • DirectoryExists e FileExists determinano se esistono, nel file system, la directory o il file specificato
  • CreateDirectory crea una nuova directory secondo il percorso fornito
  • Drives restituisce una collezione in sola lettura contenente informazioni sui vari drives disponibili
  • GetDriveInfo GetDirectoryInfo e GetFileInfo restituiscono informazioni sul drive, directory e file specificato

My.Computer.Info permette di accedere alle informazioni riguardanti la macchina locale come il sistema operativo e la memoria fisica.
  • OSFullName fornisce il nome completo del sistema operativo
  • OSPlatform identifica la piattaforma del sistema operativo
  • AvaiablePhysicalMemory fornisce l'ammontare in bytes della memoria fisica disponibile
  • TotalPhysicalMemory fornisce l'ammontare in bytes della memoria fisica totale

My.Computer.Keyboard permette di determinare lo stato della tastiera e dei vari tasti premuti come CTRL, SHIFT, ALT o se BLOC NUM e BLOC SCROLL sono attivati.
  • AltKeyDown, CtrlKeyDown, ShiftKeyDown restituiscono True se i tasti Alt, Ctrl o Shift vengono premuti quando la funzione viene chiamata
  • CapsLock, NumLock, ScrollLock restituiscono True se CapsLock, NumLock o ScrollLock risultano attivi
  • SendKeys è una funzione interessantissima perchè simula la pressione del tasto sulla finestra attiva

My.Computer.Network fornisce informazioni su tutto ciò che riguarda la rete come l'indirizzo IP della macchina e lo stato della connessione.
  • IsAvaiable determina se il computer sia connesso o meno ad una rete
  • UploadFile, DownloadFile rispettivamente carica il file su un server e scarica il file sul computer
  • Ping esegue un'operazione di ping su un indirizzo IP (può anche essere un Dns) utile a controllare se sia attivo e/o raggiungibile

If My.Computer.Network.Ping("192.168.0.1") Then
    'Ping effettuato positivamente
Else
    'Ping effettuato senza successo
End If                 
Interessanti (e di certo non meno importanti) ci sono anche My.Computer.Mouse, My.Computer.Ports, My.Computer.Printer, My.Computer.Registry e My.Computer.Screen


My.User (utilizzabile anche in ASP.NET) espone poche proprietà come Name che restituisce il nome dell'utente loggato o IsAuthenticated che indica se l'utente è stato autenticato.
Dim sNomeAutenticato As String
If My.User.IsAuthenticated Then
    sNomeAutenticato = My.User.Name
End If                  


My.Forms
My.Forms.FormMaster.Show()   
My.Settings
Dim connectionString As String = My.Settings.ConnectionString    
My.Resources
Me.Icon = My.Resources.IconaCaricata    

Autore: Fabrizio De Odorico

TAGS: My, Namespace, Vb.net

Postato il 27/01/2013 | Invia ad un amico  |   Versione stampabile  |   Aggiungi ai preferiti  |   Visite: 3846  |   Contattami su whatsapp

Modulo Login

 

 

 

 

 

Vuoi offrirmi un caffè?

Se trovi utili i miei articoli o vuoi aiutarmi ad aggiungere altro materiale sul sito...

fai una Donazione

Terminologia

La piattaforma .Net è una suite di prodotti creata dalla Microsoft dove i vari linguaggi di programmazione sono orientati agli oggetti (da C# a Visual Basic a J#).
Il bytecode di .NET viene compilato al momento dell'esecuzione (just in time compilation) ed è compatibile con le sole piattaforme Windows.

Java è un linguaggio di programmazione orientato agli oggetti creato dalla Sun Microsystems.
Il bytecode, generato dalla compilazione, viene interpretato dalla Java Virtual Machine in fase di esecuzione. Per questo motivo le applicazioni java sono indipendenti dall'hardware sulle quali vengono eseguite.