--BOLUM 1--

Bu kodlar ile messenger a hukmedebilirsiniz

ilk olarak projemize messenger ı eklememiz gerek. " Projects > Preferences... "
menusunden aşağıdakileri ekleyelim...

Messenger Type Library (C:\Program Files\Messenger\msmsgs.exe)
Messenger API Type Library (C:\Program Files\Messenger\msmsgs.exe\3)
Messenger AddIns Type Library (C:\Program Files\Messenger\msmsgs.exe\4)
Messenger Private Type Library (C:\Program Files\Messenger\msmsgs.exe\2)

daha sonra formumuzun genaral - decleration kısmına

Private MSN As New MsgrObject
Private MSNAPI As New MessengerAPI.Messenger

kodlarımızı ekliyelim...artık kod yazarak messenger hesabımızdan online olmaya hazırız.

MESSENGER HESABIMIZDAN OTURUM ACMA

İlk olarak formumuza 2 adet text box ve 2 adet command nesnesi ekliyelim.
//
text1 : Mail adresimiz icin ([email protected])
text2 : şifremiz icin
command1 : Oturum acmak icin
command2 : Oturum kapamak icin
\\\

command1 (Oturum acma) butonunun click olayına şu kodları yazıyoruz :
On Error Resume Next
MSN.Logon Text1.Text, Text2.Text, MSN.Services.PrimaryService

command2 (Oturum kapama) butonunun click olayına şu kodları yazıyoruz :
On Error Resume Next
MSN.Logoff

2.bir msn iniz varsa programda kullandığınız mail hesabını listenize ekleyerek oturumun acılmış olduğunu gorebilirsiniz



--BOLUM 2--

Bu kodlar ile messenger a hukmedebilirsiniz

[Nickimizi değiştirme / Durumumuzu Değiştirme / Listemizdeki Kullanıcıları ListBox a ekleme / Listemizdeki Kullanıcılara Mesaj Gonderme]

Messenger ı kullanabilmek icin ilk olarak messenger apilerini projemize ekliyelim (Nasıl yapacağınız ilk makalemizde yazıyor...)

MSN deki Nickimizi Değiştirelim
Formumuza;
1 adet Label (name : lblNewNickName)
1 adet TextBox (name : txtNewNickName)
1 adet CommandButton (name: cmdChangeNickName)
ekliyelim ve aşağıdaki kodları yazalım :
---------------------------------------------
Private MSN As New MsgrObject

Private Sub cmdChangeNickName_Click()
If MSN.LocalState = MSTATE_OFFLINE Then
MsgBox "You are not Signed In"
Else
MSN.Services.PrimaryService.FriendlyName = txtNewNickName.Text
txtNewNickName.Text = ""
End If
End Sub
---------------------------------------------
(Bu kodun detaylı acıklamasını ilk makeleden oğrenebilirsiniz...)

MSN deki Durumumuzu Değiştirelim
Formumuza;
7 adet OptionButton (Name ozellikleri : optOnline, optBusy, optBeRightBack, optAway, optOnThePhone, optOutToLunch ve optAppearOffline olarak ayarlıyalım).
ve aşağıdaki kodları yazalım :
---------------------------------------------
Private MSN As New MsgrObject

Private Sub Form_Load()
Select Case MSN.LocalState
Case MSTATE_ONLINE
optOnline.Value = True
Case MSTATE_BUSY
optBusy.Value = True
Case MSTATE_BE_RIGHT_BACK
optBeRightBack.Value = True
Case MSTATE_AWAY
optAway.Value = True
Case MSTATE_ON_THE_PHONE
optOnThePhone.Value = True
Case MSTATE_OUT_TO_LUNCH
optOutToLunch.Value = True
Case MSTATE_INVISIBLE
optAppearOffline.Value = True
End Select
End Sub

Private Sub optAppearOffline_Click()
MSN.LocalState = MSTATE_INVISIBLE
End Sub

Private Sub optAway_Click()
MSN.LocalState = MSTATE_AWAY
End Sub

Private Sub optBeRightBack_Click()
MSN.LocalState = MSTATE_BE_RIGHT_BACK
End Sub

Private Sub optBusy_Click()
MSN.LocalState = MSTATE_BUSY
End Sub

Private Sub optOnline_Click()
MSN.LocalState = MSTATE_ONLINE
End Sub

Private Sub optOnThePhone_Click()
MSN.LocalState = MSTATE_ON_THE_PHONE
End Sub

Private Sub optOutToLunch_Click()
MSN.LocalState = MSTATE_OUT_TO_LUNCH
End Sub
---------------------------------------------
Acıklama : MSN.LocalState bizim msn imizin durumunun gosterildiği bi kod parcasıdır.Burda bulunan değerler ;
MSTATE_AWAY
MSTATE_BE_RIGHT_BACK
MSTATE_BUSY
MSTATE_IDLE
MSTATE_INVISIBLE
MSTATE_LOCAL_CONNECTING_TO_SERVER
MSTATE_LOCAL_DISCONNECTING_FROM_SERVER
MSTATE_LOCAL_FINDING_SERVER
MSTATE_LOCAL_SYNCHRONIZING_WITH_SERVER
MSTATE_OFFLINE
MSTATE_ON_THE_PHONE
MSTATE_ONLINE
MSTATE_OUT_TO_LUNCH
MSTATE_UNKNOWN 'dır.

Listemizdeki Kullanıcıları Gorelim (Kullanıcıları ListBox'a Ekleme)
Formumuza;
2 adet Label (name : lblOnlineContacts ve lblOfflineContacts)
2 adet ListBox (name : lstOnlineContacts ve lstOfflineContacts)
1 adet CommandButton (name: cmdRefreshList)
ekliyelim ve aşağıdaki kodları yazalım :
---------------------------------------------
Private MSN As New MsgrObject

Private Sub RefreshList()
lstOfflineContacts.Visible = False
lstOnlineContacts.Visible = False

Dim User As IMsgrUser

lstOnlineContacts.Clear

lstOfflineContacts.Clear

For Each User In MSN.List(MLIST_CONTACT)
If User.State = MSTATE_OFFLINE Then
lstOfflineContacts.AddItem (User.EmailAddress)
Else
lstOnlineContacts.AddItem (User.EmailAddress)
End If
Next

lstOfflineContacts.Visible = True
lstOnlineContacts.Visible = True
End Sub

Private Sub cmdRefreshList_Click()
If MSN.LocalState MSTATE_OFFLINE Then RefreshList
End Sub

Private Sub Form_Load()
cmdRefreshList_Click
End Sub
---------------------------------------------
Acıklama : Formumuz yuklenirken msn listemizdeki kullanıcıları listbox nesnesine eklicek...(Mail adresleri şeklinde.Siz isterseniz bunu kullanıcıların nickleri olarak değiştirebilirsiniz...)

Listemdeki Kullanıcılar!Ben Burdayım! (Mesaj gonderme)
Formumuza;
1 adet Label (name : lblOnlineContacts)
1 adet ListBox (name : lstOnlineContacts)
2 adet CommandButton (name: cmdRefreshList ve cmdSendIM)
ekliyelim ve aşağıdaki kodları yazalım :
---------------------------------------------
Private MSN As New MsgrObject

Private Sub RefreshList()
lstOnlineContacts.Visible = False

Dim User As IMsgrUser

lstOnlineContacts.Clear

For Each User In MSN.List(MLIST_CONTACT)
If User.State MSTATE_OFFLINE Then lstOnlineContacts.AddItem (User.EmailAddress)
Next

lstOnlineContacts.Visible = True
End Sub

Private Sub cmdRefreshList_Click()
If MSN.LocalState MSTATE_OFFLINE Then RefreshList
End Sub

Private Sub cmdSendIM_Click()
Dim User As IMsgrUser
Dim bstrMsgHeader As String
Dim bstrMsgText As String

If MSN.LocalState = MSTATE_OFFLINE Then
MsgBox "Oturumunuz Acık Değil!"
Else
If MSN.LocalState = MSTATE_INVISIBLE Then
MsgBox "Durumunuzu Değiştirmeniz Gerekiyor!"
Else
Set User = MSN.CreateUser(lstOnlineContacts.Text, MSN.Services.PrimaryService)
bstrMsgText = InputBox("Lutfen Mesajınızı Giriniz : ?", "Mesaj Girişi", "Merhaba ", Me.Left, Me.Top)
User.SendText bstrMsgHeader, bstrMsgText, MMSGTYPE_NO_RESULT
MsgBox "Mesajınız " & User.EmailAddress & " 'a " & bstrMsgText & " olarak iletildi."
End If
End If
End Sub

Private Sub Form_Load()
cmdRefreshList_Click
End Sub
alntı
__________________