Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.



Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.

Prezzo: € 0.0.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Accedere al Registro di sistema con l'oggetto WSHShell

Questa lezione, consultata da 1570 utenti, è stata giudicata di contenuti sufficienti , con un'esposizione perfettamente comprensibile e con un livello di approfondimento sufficiente da 2 votanti.


Il codice

Il componente Window Script Host ha lo scopo di ottimizzare alcune operazioni ripetitive e di una certa complessità. Ad esempio, nella fase di accesso al registro in lettura/scrittura si dovrebbe fare uso delle funzioni RegOpenKey e RegCreateKey per le applicazioni a 16bit e le funzioni estese RegOpenKeyEx e RegCreateKeyEx per quelle a 32 bit.
La ripetitività nell'uso di tali funzioni sta nell'impossibilità di chiudere una chiave nel caso in cui se ne debba aprire o creare una sotto-chiave, creando così una serie di istruzioni legate le une dalle altre da un parametro che viene recuperato dalla precedente ed utilizzato nella successiva.

Per sfruttare le potenzialità dell'oggetto in questione sarà sufficiente importare nel progetto il riferimento Window Script Host Object Model, come mostrato in figura:

Il componente WSH comprende differenti oggetti in base al differente utilizzo.
Ad esempio l'oggetto WshNetwork può essere utilizzato per verificare il nome del computer sul quale gira l'applicazione, il nome dell'utente ed informazioni a queste correlate. L'oggetto WshShortCut può essere utilizzato per la creazione di collegamenti al desktop e così via.
Tra tutti si andrà a scegliere l'oggetto WshShell che ha la funzione (tra le tante altre) di fornire un rapido e semplice accesso al registro mediante l'impiego di un solo metodo e quindi di una sola riga di codice.
Nelle dichiarazioni generali si dovrà allora prevedere una variabile oggetto del tipo WshShell. A tale scopo si può denominare tale variabile con un nome significativo come ad esempio oggShell:

Dim oggShell As WshShell

In una sottoprocedura dell'applicazione in sviluppo si dovrà assegnare un'istanza di WSH alla variabile. Si consideri la routine Form_Load() come mostrato di seguito:

Private Sub Form_Load()
Set oggShell = New WshShell
'...
End Sub

Prima della chiusura della routine si può infine prevedere l'annullamento dell'istanza dell'oggetto WshShell attraverso la seguente linea di codice:

Set oggShell = Nothing

In questo modo le risorse utilizzate per memorizzare l'oggetto verranno liberate e rese disponibili per altri scopi.
L'interazione dell'oggetto con il registro avviene con l'utilizzo di tre metodi che saranno ora analizzati uno per uno.
Il metodo RegRead ha lo scopo di leggere una chiave o un valore. La sintassi corrisponde alla seguente:

oggShell.RegRead(chiave/valore)

dove chiave/valore è una stringa che indica la chiave o il valore da leggere.
Nel caso di una chiave si potrebbe scrivere:

Valore = oggShell.RegRead("HKEY_CLASSES_ROOT\")
MsgBox Valore

nel caso di un valore invece:

Valore = oggShell.RegRead("HKEY_CURRENT_USER\Keyboard Layout\Preload\1")
MsgBox Valore

Come indicare che si desidera leggere una chiave o un valore? Confrontando i due esempi sopra si noterà che mentre la prima stringa che identifica una chiave è seguita dal simbolo "\" ("HKEY_CLASSES_ROOT\"), per la seconda non vale la stessa regola in quanto il testo seguente l'ultima barra ("…\1") non è una chiave ma un valore.

Cosa indicano le stringhe HKEY_CLASSES_ROOT e HKEY_CURRENT_USER?
Si riferiscono alle finestre del registro di sistema. Ciascuna finestra corrisponde ad una chiave predefinita, una specie di macro-chiave i cui valori corrispondono alle sotto-chiavi rappresentate dalle cartelle. Ad esempio la chiave predefinita HKEY_CURRENT_USER contiene la directory principale delle informazioni di configurazione relative all'utente correntemente connesso. In questa finestra vengono memorizzate le cartelle dell'utente, i colori dello schermo e le impostazioni del Pannello di controllo. L'insieme di queste informazioni costituisce il profilo dell'utente.
La chiave predefinita HKEY_USERS contiene la directory principale di tutti i profili utente del computer. HKEY_CURRENT_USER costituisce una sottochiave di HKEY_USERS.
La chiave predefinita HKEY_LOCAL_MACHINE contiene le informazioni di configurazione specifiche del computer per tutti gli utenti.
La chiave predefinita HKEY_CLASSES_ROOT è una sottochiave di HKEY_LOCAL_MACHINE\Software. Le informazioni memorizzate in questa cartella assicurano l'apertura del programma corretto quando si apre un file utilizzando Esplora risorse.
E per finire la chiave predefinita HKEY_CURRENT_CONFIG contiene informazioni sul profilo hardware utilizzato dal computer locale all'avvio del sistema.

Nella notazione precedente, invece di utilizzare la definizione standard della chiave predefinita, è possibile utilizzare, se consentito, un'abbreviazione apposita, proprio come mostrato nella tabella:

 Collections
Significato
 HKEY_CURRENT_USER  HKCU
 HKEY_LOCAL_MACHINE  HKLM
 HKEY_CLASSES_ROOT  HKCR
 HKEY_USERS  nessuno
 HKEY_CURRENT_CONFIG  nessuno

NOTA: nei test di lettura/scrittura nel registro è consigliabile prima di tutto salvare i valori eventualmente modificati e tenere una lista delle modifiche in modo da evitare di lasciare chiavi e valori non utilizzati. Per quanto riguarda invece le prestazioni è consigliabile utilizzare le chiavi predefinite che contino un numero inferiore di sotto-chiavi. Se infatti si utilizza la chiave primaria HKEY_CLASSES_ROOT prima di visualizzare una modifica effettuata si dovrà attendere a lungo prima che l'Editor del Registro aggiorni la lista di sotto-chiavi.

Il secondo metodo dell'oggetto è RegWrite che ha lo scopo di scrivere nel registro un valore o una chiave. Per indicare che si vuole inserire una chiave o un valore vale la stessa regola analizzata poco prima: una chiave terminerà col simbolo "\" mentre un valore no.
La sintassi del metodo corrisponde a:

WshShell.RegWrite stringa, valore, [tipo]

Dove stringa indica la chiave da aggiungere, valore l'eventuale valore associato alla chiave e tipo la tipologia di valore.
Per il tipo di valore la scelta è limitata a: "REG_SZ" o "REG_EXPAND_SZ" (stringa espandibile) o ancora "REG_MULTI_SZ" (stringa multipla) , per un valore in forma di stringa, "REG_DWORD per un intero e "REG_BINARY" per un valore binario.
La stessa distinzione si ottiene tentando di aggiungere manualmente un valore al registro. Se infatti si sceglie dal menu dell'Editor del Registro la voce 'Aggiungi valore' le scelte saranno le stesse elencate in precedenza, come mostra la figura sottostante:

Pertanto per aggiungere la chiave denominata "NuovaChiave" alla chiave predefinita e HKEY_CURRENT_USER:

oggShell.RegWrite "HKCU\NuovaChiave\", "", "REG_SZ"

Questo scriverà la chiave NuovaChiave con un valore nullo di tipo stringa. Da adesso in poi si utilizzerà la costante HKCU al posto della notazione estesa HKEY_CURRENT_USER. Il risultato dell'operazione eseguita sarà simile a quello ottenuto nella figura seguente:

Se invece si vuole aggiungere una valore ad una chiave specifica:

oggShell.RegWrite "HKCU\NuovaChiave\NuovoValore", "Valore", "REG_SZ"

Ed il risultato sarà:

Infine il terzo metodo è RegDelete che ha il compito di eliminare chiavi e/o valori utilizzando la stessa regola analizzata nel caso di RegWrite e RegRead.
La sintassi è:

oggShell.RegDelete chiave/valore

Ad esempio se si vuole eliminare le modifiche al registro apportate finora, cominciando proprio dal valore NuovoValore:

oggShell.RegDelete "HKCU\NuovaChiave\NuovoValore"

ed il registro ritornerà nella condizione precedente all'inserimento del valore NuovoValore ossia:

Per eliminare anche la chiave NuovaChiave:

oggShell.RegDelete "HKCU\NuovaChiave\"