Esempio 2: Script completo per l’eliminazione delle frecce

Ecco una simpatica guida su come rimuovere la freccina dalle icone dei collegamenti. É anche un'occasione per avvicinare i più curiosi a un linguaggio di programmazione.

Avatar di Tom's Hardware

a cura di Tom's Hardware

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?
  1. La sezione “If” contiene codice per la prevenzione degli errori, per evitare che lo script si interrompa ad una seconda esecuzione.
  2. 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.
  3. 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.
  4. Per completezza, potreste volere trovare altre tracce di IsShortCut, per esempio in: HKCRpiffile e HKCRWSHFile.
Leggi altri articoli