PREMESSA
Questa guida è la ri-edizione di quella scritta dal sottoscritto nel 2013 per Windows 8.1, con alcune aggiunte applicabili anche alla precedente versione.
E' dedicata ai possessori di Windows 10, Home o Pro, con build almeno 10586 o superiore cioè il TH2 del novembre del 2015
LE TILES
Situazione di base:
Predo come esempio un programma in modo da rendere la guida "tangibile", in questo caso EasyCrypt. Windows 10 lascia due possibilità alle applicazione desktop, l'utilizzo di un colore personalizzato per tutte le icone oppure il sistema sceglierà autonomamente il colore della tile in base allo sfondo. Il risultato alla fine è il medesimo, un colore per una icona potrebbe non adattarsi ad un'altra rendendo la stessa illegibile o troppo appariscente.
La guida sarà divisa in due parti:
- La prima parte sarà dedicata a chi vuole cambiare solo il colore di sfondo e la personalizzazione del testo dell'icona
- La seconda parte sarà dedicata a chi vuole cambiare l'icona "standard" con una senza bordi in stile applicazioni dello store
La divisione è necessaria poiché non si possono inserire parametri "vuoti" o incorretti, in tal caso ogni modifica verrà ignorata e l'icona utilizzata sarà quella di sistema.
PERSONALIZZAZIONE SFONDO - TESTO DELL'ICONA
Per prima cosa dobbiamo creare un file XML, il vero fulcro di questa guida. Basterà aprire un semplice Blocco Note, copiare il contenuto, modificarlo secondo esigenza e salvare con estensione .xml
Due fattori importanti sono:
- Il nome del file XML
- La posizione del file XML
Il nome deve essere composto in parte con il nome dell'eseguibile a cui vorremo fare il collegamento. Nel nostro caso il file eseguibile si chiama
EasyCrypt.exe, il nome del file XML dovrà essere:
Codice:
easycrypt.visualelementsmanifest.xml
Questo file dovrà essere posizionato nella stessa cartella dell'eseguibile, quindi ad esempio:
Codice:
C:\Cartella\EasyCrypt.exe
C:\Cartella\easycrypt.visualelementsmanifest.xml
Questo è il contenuto da copiare nel file XML:
Codice:
<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<VisualElements
BackgroundColor="#FFFFFF"
ShowNameOnSquare150x150Logo="on"
ForegroundText="dark"/>
</Application>
In rosso sono evidenziate le parti modificabili, tutto il resto deve rimanere invariato.
Iniziamo con il colore di sfondo, detto appunto
BackgroundColor. Quelle lettere non sono altro che valori HTML dei colori, per aiutarvi nella scelta usate un sito come
ColorPicker
Alcuni esempio il codice #000000 equivale al nero, #FFFFFF equivale al bianco come nell'esempio e così via. E' importanete di non dimenticare il cancelletto
# davanti al codice del colore.
In teoria è possibile usare il nome del colore in inglese, come blue, white, black, etc. in questo modo:
Codice:
BackgroundColor="white"
Ma non vi consiglio di utilizzare questo metodo poichè la scelta è limitata.
Passiamo al nome dell'icona nella versione 150x150, detto
ShowNameOnSquare150x150Logo. Solo per la versione 150x150 abbiamo la possibilità di mostrare oppure no il testo, infatti in ogni caso la versione "piccola" da 70x70 non mostra alcun testo. Sono due i parametri disponibili,
on e
off, nel nostro esempio abbiamo lasciato la possibilità di mostrare il testo.
L'ultimo parametro è il colore del testo, detto
ForegroundText. Abbiamo solo due scelte di colori,
dark e
light, rispettivamente nero e bianco. Altri colori non sono implementati. Nel nostro esempio abbiamo impostato il colore nero perchè lo sfondo è bianco.
Una volta che abbiamo scelto tutte le personalizzazioni, salviamo il file XML
A questo punto dobbiamo creare un collegamento all'eseguibile di EasyCrypt, cliccando con il tasto destro sull'eseguibile --> Invia a --> Desktop ( crea collegamento )
Il nome del collegamento corrisponderà al nome visualizzato nell'icona, quindi se il collegamento si chiamerà semplicemente "EasyCrypt" anche l'icona nello Start avrà lo stesso nome, la scelta può anche non corrispondere al nome dell'eseguibile quindi non ci sono restrizioni sotto questo punto di vista.
Possiamo sposare il collegamento in questa cartella:
Codice:
%APPDATA%\Microsoft\Windows\Start menu\Programs
Se abbiamo eseguito correttamente tutti i passaggi questo sarà il risultato:
Se vogliamo eseguire modifiche al file XML successive alla creazione del collegamento dobbiamo fare il "refresh" dell'icona nel Menu Start. Aprire Blocco Note, incollare le seguenti stringhe e salvare con estensione .bat ( non .txt.bat, l'icona è diversa )
Codice:
: x_Master_x
@ECHO OFF
SET LNKFOLDER=%APPDATA%\Microsoft\Windows\Start Menu\Programs
CD "%LNKFOLDER%"
COPY /B "%LNKFOLDER%\*.lnk" +,,
PAUSE
Il batch è generico è può essere usato per aggiornare ogni collegamento in quella cartella quindi è sempre utilizzabile
Questo è un altro esempio che usa un colore di sfondo diverso (
#0078D7, lo stesso colore della tile di Microsoft Edge ) ed ha il parametro
ShowNameOnSquare150x150Logo su
off
PERSONALIZZAZIONE ICONA IN STILE APP MODERN
Prima di procedere, si presume che abbiate letto il capitolo precedente su come personalizzare il file XML, su dove salvarlo, con che nome ed tanto altro, è necessario per procedere con la seconda parte della guida
Nel file XML abbiamo bisogno di due paramentri in più:
Codice:
<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<VisualElements
BackgroundColor="#FFFFFF"
ShowNameOnSquare150x150Logo="on"
ForegroundText="dark"
Square150x150Logo="MyIcon.png"
Square70x70Logo="MyIcon.png"/>
</Application>
Per
Square150x150Logo e
Square70x70Logo i formati accettati per l'icona metro sono PNG - JPG - TIF. Io vi consiglio vivamente il PNG perchè ha la possibilità di impostare il canale alfa, in questo modo sarà sempre possibile cambiare lo sfondo lasciando l'icona inalterata.
Il formato massimo per l'icona è 1024x1024 con un peso che non deve superare i 200KB. Anche in questo caso vi consiglio di impostare preventivamente la dimensione a 150x150 in modo da controllare l'effetto dell'icona definitiva.
Si può usare la stessa immagine per i due formati ( abbiamo solo due tiles disponibili, 150x150 --> Medio / 70x70 --> Piccolo ) oppure due diverse, il nome del file è a scelta ma l'importante è che non abbia spazi ( Il mio logo --> Il_mio_logo ). La posizione dell'icona deve essere la stessa del file eseguibile e di quello XML, quindi:
Codice:
C:\Cartella\EasyCrypt.exe
C:\Cartella\easycrypt.visualelementsmanifest.xml
C:\Cartella\MyIcon.png
Volendo è possibile utilizzare una cartelle per le icone, in questo modo:
Codice:
Square150x150Logo="IconFolder\MyIcon.png"
Square70x70Logo="IconFolder\MyIcon.png"/>
Vi ricondo che la "regola degli spazi" vale anche per il nome delle cartelle, la disposizione finale sarà questa:
Codice:
C:\Cartella\EasyCrypt.exe
C:\Cartella\easycrypt.visualelementsmanifest.xml
C:\Cartella\IconFolder\MyIcon.png
Questo è uno screenshot dimostra il risultato, con un'icona in stile modern "medio" presa a caso dal web. Il colore di sfondo è quello impostato in BackgroundColor visto che l'icona PNG ha il canale alfa.
Altro screenshot con l'icona in stile modern in versione "piccolo"
PIN ALLO START DI FILE/CARTELLE
Microsoft permette di applicare la seguente guida solo agli eseguibili, non lasciando di fatto la possibilità di personalizzare la tile di un file o di una directory, giusto per fare un paio di esempi. Per compensare a questa mancanza ho deciso di creare un wrapper standalone-portable di circa 200KB che si inserisce tra la destinazione, cioè il file-cartella, e il menu start. Il tutto è possibile grazie questa funzione,
ShellExecute function (Windows) - MSDN - Microsoft e l'eseguibile appunto l'ho chiamato con lo stesso nome:
ShellExecute v1.0 -->
Download
Password
Se viene lanciato senza parametri viene mostrata la guida corredata di esempi, che non è altro tutto quello che è possibile fare con questa funzione. Nella maggior parte dei casi si userà 1, massimo 2 parametri lasciando i restanti per quelli più esperti.
Come applicare ShellExecute a questa guida
In questo esempio verrà eseguito il pin di un collegamento ad hwupgrade.
Una volta scaricato ShellExecute, si posiziona in una qualsiasi directory e si struttura la suddetta directory come già mostrato nella guida:
Codice:
C:\Cartella\ShellExecute.exe
C:\Cartella\shellexecute.visualelementsmanifest.xml
Infine si crea il collegamento, con il nome che si preferisce, alla cartella "Start menu" ed è qui che bisogna aggiungere la destinazione, in questo caso un sito web. Basta andare nelle proprietà del collegamento:
Modificarlo in questo modo:
Codice:
C:\Percorso\ShellExecute.exe http://www.hwupgrade.it
Quando verrà eseguito il collegamento, verrà aperta la finestra del browser predefinito. Se avessimo voluto ipoteticamente aprire Edge avendo Chrome-Firefox come browser predefinito la stringa sarebbe stata:
Codice:
C:\Percorso\ShellExecute.exe microsoft-edge:http://www.hwupgrade.it
Questo è il risultato finale, con le tiles di Hwupgrade e di Google:
Vi ricordo che ad ogni .exe si può associare un XML e di conseguenza un collegamento, quindi per ogni tile bisogna fare una copia di ShellExecute, anche nella stessa directory della precedente o in una posizione a voi gradita. Non ci saranno incompatibilità poiché come già detto il programma è standalone-portable. Un altro paio di esempio di utilizzo di ShellExecute:
Aprire una cartella:
Codice:
"C:\Percorso\ShellExecute.exe" "%USERPROFILE%"
Oppure un file, utilizzando un programma specifico come ad esempio WordPad:
Codice:
"C:\Percorso\ShellExecute.exe" write.exe "C:\Test.txt"
Oppure ancora lo stesso file ma utilizzando il software predefinito, che potrebbe essere Blocco Note:
Codice:
"C:\Percorso\ShellExecute.exe" "C:\Test.txt"
Le possibilità sono davvero molte, basta sperimentare e seguire la guida all'avvio del programma o su MSDN
NOTA: Le applicazioni del pacchetto Office 2016 sono incompatibili con la versione "tradizionale" di questa guida visto che hanno già un file XML nativo che si occupa della gestione della tile ed alcune modifiche, come quella dell'icona personalizzata, non funzionano. In una situazione del genere è possibile utilizzare ShellExecute per ovviare al problema.
Non quotare questo post per eventuali modifiche, si prega di citare l'autore ed il post relativo