Prima di iniziare con il post vorrei ringraziare tutti coloro che hanno letto e/o commentato il mio primo post, detto questo, iniziamo!
Sviluppare componenti per windows live messenger è molto semplice, in questo post spiegherò per passi il procedimento per creare un semplice bot che risponde automaticamente ad un messaggio.
Obiettivo
Si vuole creare un componente "bot" per automatizzare la funzione di risposta in windows live messenger usando Visual C#.
Premessa
Windows live messenger di default ha delle funzioni nascoste, tra le quali la funzione di installazione manuale di componenti esterni. In questo post vedremo anche come abilitare questa funzione e installare il nostro bot.
1° Step
Creiamo un nuovo progetto "libreria di classi" in Visual Studio, creiamo una classe e chiamiamola AddIn.
Aggiungiamo nelle direttive la seguente using "Microsoft.Messenger" e facciamo ereditare alla nostra classe AddIn l'interfaccia "IMessengerAddIn". Ok, adesso possiamo iniziare con la programmazione del componente.
2°Step
Iniziamo con il dichiarare alcune variabili private
1: //in seguito servirà per catturare l'istanza di messenger
2: private MessengerClient m_MessengerClient;
3:
4: //implemento la classe per la risposta
5: private OutgoingMessage m_OutMessage = null;
adesso inizializziamo le nostre variabili private, diamo qualche proprietà al nostro componente e catturiamo i messaggi in ingresso da messenger
1: public void Initialize(MessengerClient messenger)
2: {
3: //catturiamo l'istanza di messenger
4: m_MessengerClient = messenger;
5: //inizializzo la classe per la risposta
6: m_OutMessage = new OutgoingMessage();
7:
8: //Proprietà al componente - Descrizione e Nome
9: m_MessengerClient.AddInProperties.Description = "Add-in";
10: m_MessengerClient.AddInProperties.FriendlyName = "Elenoire Add-in";
11:
12: m_MessengerClient.IncomingTextMessage +=
new EventHandler<IncomingTextMessageEventArgs>
(m_MessengerClient_IncomingTextMessage);
13: }
fatto questo manca solo una cosa, il metodo che elabora i messaggi e che invia la risposta in automatico, vediamo come fare
1: private void m_MessengerClient_IncomingTextMessage
(object sender, IncomingTextMessageEventArgs e)
2: {
3: //risposta automatica
4: string autoResponse = ("Hello " + e.UserFrom.FriendlyName).ToString();
5:
6: //richiamo il metodo per inviare la risposta all'utente
7: m_MessengerClient.SendTextMessage( autoResponse,e.UserFrom);
8: }
Adesso siamo pronti, compilate la vostra solution e provvediamo all'installazione.
3° Step
In questo step vedremo come abilitare le funzionalità nascoste di windows live messenger, spostarsi quindi nel registro di sistema, Esegui->regedit cliccare su continua e andare nella voce HKEY_CURRENT_USERS\Software\Microsoft\MSNMessenger e aggiungere un valore DWord, chiamiamolo "AddInFeatureEnabled" e settiamolo a 1.
A questo punto dobbiamo solo inserire la nostra dll (risultato della compilazione) come componente aggiuntivo di messenger.
Apriamo messenger, effettuare il login e spostarsi nelle impostazioni, adesso se tutto è andato a buon fine dovremmo avere la scheda "componenti aggiuntivi", spostiamoci li e installiamo la nostra dll seguendo i passi di messenger.
Conclusione
Abbiamo creato un semplice bot che ci permette di generare automaticamente un messaggio in risposta ai nostri contatti che ci inviano un messaggio, abbiamo inoltre sbloccato una funzione nascosta di messenger.
Technorati Tag:
Live,
C#,
Messenger
posted @ mercoledì 30 luglio 2008 8.24