Oggi è stata una giornata particolare, tra guai di amore, e le mie analisi per i problemi di salute che mi porto dietro da gennaio,arrivata sera scrivo due cose sul componente .net di messenger, nel post precedente usavo windows messenger come componente COM, il tutto funziona perfettamente, ma visto che uso visual studio 2005, perchè non usare un oggetto .NET, così ho dato un occhio all'assembly MessengerClient.dll. Con questo piccolo esempio riesco a forzare una risposta automatica quando l'utente ha uno stato diverso da in linea.
L'esempio qui sotto, è banale ma lavorandici su si possono fare di verse cosette interessanti, dimenticavo per far funzionare il tutto è necessario, compilare il nostro progetto come classe e trasferirlo nella Global Assembly Cache, per fare questo si può usare la GacUtil del frameworl, perchè un assembly possa essere installato nella Global Assembly Cache deve essere dotato di uno strong-name, dalla finestra My Project selezionate la scheda Firma,selezionare "Firma Assembly", da "Scegli un file chiave con nome sicuro", selezionare "Nuova...". specifiare il nome e la password, quindi compilare il tutto, usare il GACUTIL per trasferirlo del Globla Assembly Cache e aggiungere una chiave di registro AddInFeatureEnabled di tipo DWORD di valore = 1 nel percorso :HKEY_CURRENT_USER\ Software\ Microsoft\ MSNMessenger .
A questo punto sul menu di messenger sarà possibile aggiungere il nostro componente, che risponderà per voi in perfetto fiorentino...che volete di più!
Imports Microsoft.Messenger
Public Class Class1
Implements IMessengerAddIn
Private WithEvents MioMessenger As MessengerClient
Public Sub Initialize(ByVal messenger As Microsoft.Messenger.MessengerClient) _
Implements Microsoft.Messenger.IMessengerAddIn.Initialize
MioMessenger= messenger
End Sub
Rem gestisco l'evento IncomingTextMessage
Private Sub MioMessenger_IncomingTextMessage(ByVal sender As Object, _
ByVal e As IncomingTextMessageEventArgs) _
Handles MioMessenger.IncomingTextMessage
Rem se il mio stato è diverso da non in linea
If MioMessenger.LocalUser.Status <> UserStatus.Offline Then
MioMessenger.SendTextMessage("E ciò da fare nini.... e ti rispondo dopo!" , e.UserFrom)
End If
End Sub
End Class
P.s. Il mio programmino per messenger lo trovate qui : http://xoomer.alice.it/serpiolle/ariborda.htm