Premessa:

Con questa guida ho l'intento di aiutare giovani programmatori nella distribuzione delle loro applicazioni e per darle un tocco più professionale.
In questa guida vedremo come far riconoscere le nostre applicazioni come Clients da parte di Windows modificando le opportune chiavi del registro di sistema.
Per Client si intende un software o un programma che accede a risorse o servizi di un server utilizzando dei protocolli di rete (http per il web, smtp o pop per la posta, per citare i più comuni).
Le informazioni che sto per rivelarvi le potete trovare tranquillamente sul sito MSDN di microsoft.

N.B. Si raccomanda un backup del registro prima di ogni nostra modifica.

Passo 1:

Per prima cosa dobbiamo sapere che tipo di client è il nostro programma scegliendo una di queste categorie e il relativo percorso nel registro:

Browser di internet HKEY_LOCAL_MACHINE\Softwares\Clients\StartMenuInternet
Client Mail HKEY_LOCAL_MACHINE\Softwares\Clients\Mail
Riproduttori musicali HKEY_LOCAL_MACHINE\Softwares\Clients\Media
Messaggistica istantanea HKEY_LOCAL_MACHINE\Softwares\Clients\IM
Virtual machine per java HKEY_LOCAL_MACHINE\Softwares\Clients\JavaVM

Passo 2:

Adesso dobbiamo scegliere il Canonical name della nostra applicazione, che sarà il nome con la quale il nostro programma verrà identificato, il canonical name non verrà mai mostrato all'utente.
Per convenzione si usa il nome inglese del nostro programma.
Ad esempio se la mia applicazione si chiama "magico web", un buon canonical name potrebbe essere "magic web.exe"

Quando l'abbiamo scelto lo registramo aggiungendo una chiave all'interno del tipo di client:

  • HKEY_LOCAL_MACHINE\Softwares\Clients\<tipo clients>\<canonical name>

Ad esempio

  • HKEY_LOCAL_MACHINE\Softwares\Clients\StartMenuInternet\magic web.exe

All'interno di questa chiave risiederranno tutte le informazioni sulla nostra applicazione

Passo 3:

Dopo il Canonical name dobbiamo decidere il Nome vero, quello mostrato all'utente, e dichiararlo nel registro aggingendo il valore stringa "LocalizedString" al registro e dandogli come valore:"@<file path>, -String ID"

String ID è un numero intero che specifica la posizione del nome all'interno del file .exe se non si dispone di un string ID (rimuovere quindi tutto ciò che sta dopo la virgola, compresa quella) oppure si vuole dare un nome aggiuntivo secondario bisogna modificare il valore (Predefinito) scrivendo il nome.
Ad esempio:

  • HKEY_LOCAL_MACHINE\Softwares\Clients\<tipo clients>\<canonical name>
    • (predefinito) = <nome>
    • LocalizedString = <file path>,-<StringID>
  • HKEY_LOCAL_MACHINE\Softwares\Clients\StartMenuInternet\magic web.exe
    • (predefinito) = Il magico web
    • LocalizedString = "@%programfiles%\magic web\magic web.exe", -235

Passo 4:

Il prossimo passo è quello di registrare un icona da associare al programma.
Questo passaggio è molto semplice, basta infatti aggiungere questa chiave con questo valore:

  • HKEY_LOCAL_MACHINE\Softwares\Clients\<tipo clients>\<canonical name>\DefultIcon
    • (predefinito) = <icon path>

Ovviamente l'estensione del file dovrà essere ".ico"

Passo 5:

Adesso dobbiamo registrare il verbo Open per assicurarci di far eseguire il nostro programma.

  • HKEY_LOCAL_MACHINE\Softwares\Clients\<tipo clients>\<canonical name>\shell\open\command
    • (predefinito) = <file path> <argomenti>

Passo 6:

questo è l'ultimo passo, ma anche il più complicato.
In questo passo vedremo come far passare argomenti "speciali" all'applicazione per fare ciò, si aggiungeranno 3 valori e 1 chiave in questo modo:

  • HKEY_LOCAL_MACHINE\Softwares\Clients\<tipo clients>\<canonical name>\InstallInfo
    • HideIconsCommand = <file path> <argomento nascondi icone>
    • ShowIconsCommand = <file path> <argomento mostra icone>
    • ReinstallCommand = <file path> <argomento imposta predefinito>
    • IconsVisible (valore DWORD) = 1

HideIconsCommand

Nasconde le nostre icone quando l'utente imposta a FALSE la checkbox "abilita accesso al programma" in "impostazione accesso ai programmi" qui il nostro programma leggerà l'argomento passato e dovrà nascondere:

  • Icone del desktop
  • link del menu Start, compreso il gruppo di avvio
  • Avvio veloce barra dei link
  • Area di notifica
  • Menu di scelta rapida
  • cartella compito band
Successivamente se tutto è andato a buon fine si imposterà "IconsVisible" a 0

ShowIconsCommand

Analogo al precedente con la differenza che le icone dovranno essere mostrate e il valore di "IconsVisible" posto ugale a 1

ReinstallCommand

Con questo parametro imposteremo la nostra applicazione come predefinita per quel il tipo di client il paramtro verrà passato quando l'utente sceglierà la nostra applicazione in "Impostazione accesso ai programmi" e noi dovremo associargli i necessari protocolli ed estensioni i file.
Al termine della modifica l'applicazione dovrà terminare per permettere a Windows di accettare le modifiche.

Conclusioni

Saremo noi nella nostra applicazione a dover gestire gli argomenti che gli passerremo tramite il registro.
Consiglio la modifica delle chiavi del registro di sistema durante l'istallazione della nostra applicazione e durante la sua rimozione dovremo risistemare tutto come era prima.

Spero che questa guida sia stata d'aiuto a molti e che sia stata ben chiara a tutti detto ciò possiamo ammirare il risultato finale per un Browser Internet:

38

Se ci sono problemi potete contattarmi qui: walker1993@live.it