domenica 4 luglio 2010

VB.NET: Scrivere un elemento nei preferiti di IE

Prendendo spunto da un post apparso sul forum Microsoft dedicato a VB.NET, vorrei riportare un piccolo tip che riguarda scrittura di un elemento nei preferiti del browser.

Prima di scrivere il codice che effettivamente si occupa di creare il file .url nella cartella dei preferiti, vediamo quale è il formato di tale file (limitatamente ad IE). Prima di tutto vorrei ringraziare Edward L. Blake ed il suo post da cui ho tratto le informazioni che vi riporto.

Un file .url è un file di testo con il seguente formato base:

[InternetShortcut]
URL=http://www.miosito.com/
WorkingDirectory=C:\WINDOWS\
ShowCommand=7
IconIndex=1
IconFile=C:\WINDOWS\SYSTEM\url.dll
Modified=20F06BA06D07BD014D
HotKey=1601



La sezione [InternetShortcut] definisce le informazioni relative all’url internet ed i valori hanno il seguente significato:


  • URL : contiene l’indirizzo del web site preferito;


  • WorkingDirectory : indica la directory di lavoro relativa al preferito. IE non sembra utilizzare questo valore;


  • ShowCommand : modalità con cui eseguire il preferito. Se non viene messoil campo o è vuoto, il preferito viene visualizzato in modalità normale. Se viene messo il valore 7 viene visualizzato con la finestra massimizzata. Se viene messo il valore 3 con la finestra minimizzata;


  • IconFile : Nome del file contenente l’icona del preferito. Può essere un file ico o, addirittura, un file dll o exe da cui viene ricavata l’icona;


  • IconIndex : Indice dell’icona da utilizzare. Se non inserito viene utilizzata la prima icona del file indicato nel campo precedente;


  • Modified : Campo in cui è indicata la data di modifica. Il valore contenuto in questo campo è ricavato dalla data di modifica con un particolare algoritmo;


  • HotKey: Eventuale tasto di scelta rapida. L’elenco dei valori possibili è contenuto nella seguente tabella:


Hot Key Reference 1hot key reference 2


Nelle tabelle precedenti, le sigle hanno il seguente significato:


  • C+S : CTRL + SHIFT


  • C+A : CTRL + ALT


  • C+S+A : CTRL + SHIFT + ALT



I parametri che possiamo trovare all’interno di un file .url sono altri, ma ci limiteremo, in questo post a quelli base. La funzione che ci permette di salvare un preferito di IE da codice è la seguente:








  1. Public Function AddFavorite(ByVal name As String, _

  2.                             ByVal url As String, _

  3.                             Optional ByVal subFolder As String = Nothing) As Boolean

  4.     Dim folder = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

  5.     Dim shortcut As New System.Text.StringBuilder

  6.     With shortcut

  7.         .AppendLine("[InternetShortcut]")

  8.         .AppendFormat("URL={0}", url)

  9.     End With

  10.     Dim filename As String

  11.     If String.IsNullOrWhiteSpace(subFolder) Then

  12.         filename = String.Concat(name, ".url")

  13.     Else

  14.         filename = System.IO.Path.Combine(subFolder, String.Concat(name, ".url"))

  15.     End If

  16.     filename = System.IO.Path.Combine(folder, filename)

  17.     Try

  18.         My.Computer.FileSystem.WriteAllText(filename, shortcut.ToString, True)

  19.         Return System.IO.File.Exists(filename)

  20.     Catch ex As Exception

  21.         Return False

  22.     End Try

  23. End Function







Sono stati tralasciati i parametri riguardanti il file di icona, lo showcommand e l’hotkey perchè non sono pienamente supportati.



Nessun commento: