Due screenshots per soddisfare i curiosi
Siccome so
che non state nella pelle, eccovi qualche screenshot interessante. Non li
pubblico direttamente in questo post, cliccate sopra i due titoli per vedere le
immagini JPG.
Finestra di aggiunta e modifica delle firme
Editor di codice .NET
Nel primo dei due screenshot ho riportato la finestra che si utilizza quando
volete aggiungere una nuova firma, oppure quando cliccate con il pulsante destro
per modificarne una già esistente. Notato sul lato sinistro la presenza di un
bottone, che si abilita solo quando decidiamo di creare una firma dinamica. Tale
bottone apre un editor di codice, riportato sul secondo screenshot.
Qualche classe di esempio - I'm listening
Pochi minuti
fa, con la collaborazione del mio omonimo Igor, ho realizzato una piccola
classe che permette di decorare un testo aggiungendo il titolo e la durata
della canzone che state ascoltando con Windows Media Player. Tale classe sfrutta
un plug-in per WMP denominato Blogging Plug-in, disponibile sul sito Microsoft a questo
indirizzo. Sebbene la pagina riporti la compatibilità con la release
9, funziona anche con i WMP più recenti. Questo plug-in non fa altro che
scrivere nel registry le informazioni relative alla canzone.
La classe Happy
Sign legge queste chiavi di registro e le ritorna come string per essere
impaginate nel testo della firma. Il codice è il seguente:
using Microsoft.Win32;
public class Script : HSCore.IHappySignScript
{
private string _title;
private string _duration;
public Script()
{
string key = @"Software\Microsoft\MediaPlayer\CurrentMetadata";
RegistryKey currentMetadata = Registry.CurrentUser.OpenSubKey(key, false);
_title = (string)currentMetadata.GetValue("Title", "No Title");
_duration = (string)currentMetadata.GetValue("durationString", "0:00");
}
public string GetValueParameter(int WhichParameter)
{
string ret = string.Empty;
switch(WhichParameter)
{
case 0:
ret = _title;
break;
case 1:
ret = _duration;
break;
}
return(ret);
}
}
Per questo post, ho preferito ritornare ad IMHO: il suo editor di
codice è 7 anni-luce avanti rispetto a quello che uso in Windows Live Writer.
Torniamo a noi. Innanzitutto, il namespace Microsoft.Win32 ci permette di usare
la classe RegistryKey. La classe dispone di un costruttore
senza parametri: quando facciamo drag'n'drop, viene creata un'istanza della
classe. Il costruttora apre la chiave di registro ed inizializza i due membri
privati _title e _duration. Notare che il
metodo GetValueParameter ha al suo interno uno switch: quando
Happy Sign chiama questo metodo la prima volta, passo 0 (zero), e viene
ritornato il titolo. La seconda volta passa 1 (uno) e viene ritornata la
durata.
Nulla di più semplice: se avete WMP che sta facendo il play di una canzone,
basta trascinare da Happy Sign la firma et voilà...il testo è decorato.
Qualche classe di esempio - Spazio libero su C
Se
definiamo una firma fatta in questo modo:
Non so voi, ma io ho {0} bytes liberi sul disco C!
e la associamo alla seguente classe:
using System.IO;
public class Script : HSCore.IHappySignScript
{
public string GetValueParameter(int WhichParameter)
{
System.IO.DriveInfo info = new DriveInfo("C:");
float freespace = info.AvailableFreeSpace / 1024;
return(freespace.ToString());
}
}
otteniamo una firma che suona più o meno così:
Non so voi, ma io ho 2431120 bytes liberi sul disco C!
Ci sarebbero altri esempi da fare, ma sarebbero troppo ripetitivi. Il
concetto è sempre lo stesso: scrivere una classe che implementi l'interfaccia
IHappySignScript e farle ritornare uno o più valori necessari
alla firma.