Esempio 2: Script completo per l’eliminazione delle frecce
Piuttosto che cancellare un campo di registro, è anche possibile crearne uno completamente nuovo. Da, in un certo senso, l’illusione di rinominare "IsShorCut" in "IsNotShorCut". Questa parte di codice extra ci da l’esempio di come funzionano .RegWrite e .RegRead. Da uno punto di vista strategico, questo script contiene codice per la correzione di errori semplici. In particolare, la sezione “If”, insieme a “On Error Resume Next”, completa il lavoro alla successiva esecuzione dello script.
Istruzioni- Se avete già provato l’esempio 1, potrebbe essere un’idea interessante eseguire il seconde file .reg per rimettere al suo posto il campo “IsShortCut”.
- Diamo per scontato che avete un collegamento sul desktop, altrimenti createlo come indicato sopra.
- Copiate e incollate lo script in notepad, o in un editor come OnScript.
- Salvate il file, con estensione .vbs, per esempio “nofrecce.vbs”.
- Eseguite il file, con un doppio click.
- Controllate la sezione strRoot del registro.
- Ancora una volta, uscite e rientrate da Windows (disconnessione) per vedere i risultati.
' NoArrowEg2.vbs
' Example VBScript to remove arrows on shortcuts on XP
' and Windows 2003.
' Author Guy Thomas http: //computerperformance.co.uk
' Version 2.3 - March 2007
' ---------------------------------------------------------------'
'
Option Explicit
Dim objShell, strRoot, strRegRead, strNew
Dim strRead, strDelete, strCreate
err.number = 0
strRoot = "HKCRlnkfile"
strNew = strRoot & "IsNotShortCut"
strRegRead = strRoot & "IsShortCut"
' Create the Shell object
Set objShell = CreateObject("WScript.Shell")
On Error Resume Next
strRead = objShell.RegRead(strRegRead)
If err.number => 0 then
strCreate = objShell.RegWrite(strNew,"", "REG_SZ")
strDelete = objShell.RegDelete(strRegRead)
End if
WScript.Echo "Error No: " & err.number & " check " & strRoot
On Error GoTo 0
strCreate = null
strDelete = null
WScript.Quit
' End of example script.
Che succede?- La sezione “If” contiene codice per la prevenzione degli errori, per evitare che lo script si interrompa ad una seconda esecuzione.
- RegWrite è dotato della possibilità implicita di creare un oggetto. Notate come crea il campo principale e poi gli assegna un valore. Per dare enfasi alla procedura, notate come prima che lo script venga eseguito per la prima volta, non c’è nessuna stringa “IsNotShortCut”, ma, grazie a .RegWrite, c’è una nuova chiave REG_SZ chiamata “IsNotShortCut”, con valore nullo (""). Un valore nullo può essere considerato da sezioni “If”, come quella contenuta nello script.
- Il metodo RegDelete cancella una voce dal registro, del tipo strName. Se il nome finisce con un backslash (), è trattato come una chiave, altrimenti come un valore.
- Per completezza, potreste volere trovare altre tracce di IsShortCut, per esempio in: HKCRpiffile e HKCRWSHFile.