مشاهدة النسخة كاملة : تحكم فى ال MSN Messenger من الصفر إلى الإحتراف عن طريق الفيجوال بيزيك
samer kouta
22-12-2008, 02:34 AM
السلام عليكم و رحمة الله و بركاته
فى هذا الموضوع سأقوم بالتحكم فى معظم الأشياء فى ال MSN Messenger عن طريق الفيجوال بيزيك
يعنى مثلا تغيير الحالة من Online إلى Away أو Invisible ...
أو عمل بلوك للأشخاص ...
و بعد كده نبدأ بإذن الله تصميم برامج صغيرة للماسنجر زى Answer Machine لأى حد يكلمك و إلخ
و أتمنى أن ينل الموضوع إعجابكم
samer kouta
22-12-2008, 02:36 AM
ما رأيكم ؟ أحتاك للأصوات لكي أبدأ , إذا لم يجيب أحد سوف ألغي الدورة
المجاهد
22-12-2008, 08:28 AM
سلام سامر
يلا إحنا بالإنتظار و إن شاء الله نستفاد :):):)
أيمن غ القلموني
23-12-2008, 01:26 AM
أهلا سمور:1 (86): ، بالإنتظار يلا شد الهمة
المحروم
23-12-2008, 10:10 AM
هلا بالاخ سامر ونحن بالنتظار
samer kouta
23-12-2008, 02:37 PM
إنت شو بعرفك بال vb
:p
أهلا سمور:1 (86): ، بالإنتظار يلا شد الهمة
samer kouta
23-12-2008, 02:39 PM
نبدأ على بركة الله
بدء الإتصال بين الفيجوال بيزيك و الMSN
و طبعا دى أول خطوة ممكن نعملها و حتتم بسهولة جدا بإذن الله
أولا قبل كتابة الأكواد يجب عمل الآتى فى الفيجوال بيزيك
إضغط Project بأعلى البرنامج ثم References و ستظهر لك قائمة كبيرة إبحث فيها عن الآتى وعلم عليهم :
Messenger API Type Library
Messenger Type Library
و بعد ما تعلم عليهما تدوس Ok كما بالصورة :
http://www.samerkouta.fr/test/Showa1.JPG
تمام ؟؟
ملحوظة : لو قفلت الProject و فتحت واحد جديد لازم تعمل نفس الحكاية اللى فاتت دى تانى من أول و جديد
ندخل على المهم ..
لازم دلوقتى نعرف ال Messenger API اللى حنستخدمها
بسيطة
حنكتب الكود ده فى أعلى كود الفورم بتاعتنا أو فى Module منفصلة مايفرقش
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Public WithEvents MSN As MessengerAPI.Messenger </code></code>
<code style="white-space: nowrap;"><code> Public MsgrWindow As MessengerAPI.IMessengerWindow </code></code>
<code style="white-space: nowrap;"><code> </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
(يتبع)
samer kouta
23-12-2008, 03:03 PM
معرفة حالة الMSN لديك
و دى طبعا خطوة أساسية علشان تعرف حالتك أوفلاين و لا أونلاين ولا بيزى ....
و الخطوة دى تعتمد على 8 متغيرات و هم :
MISTATUS_OFFLINE و معناها أنك غير متصل أو الماسنجر مغلق لديك
MISTATUS_ONLINE و معناها أن حالتك أونلاين
و كذلك باقى الحالات MISTATUS_BUSY و MISTATUS_AWAY و MISTATUS_BE_RIGHT_BACK و MISTATUS_ON_THE_PHONE و MISTATUS_OUT_TO_LUNCH و أخيرا MISTATUS_INVISIBLE و معناها إنك غير مرئى للآخرين .
و لكن يجب قبل كل شىء تمثيل الماسنجر بإسم معين و ليكن MSN لكى يمكننا التعامل معه و ذلك عن طريق كتابة فى الحدث Form_Load الكود الآتى :
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Set MSN = New MessengerAPI.Messenger
</code><!-- php buffer end --> </code>
نيجى دلوقتى على كيفية استخدام المتغيرات الآتية فى معرفة حالة الماسنجر لديك :
حنحط مثلا Label و ليكن إسمها Label1 علشان يطلعلنا فيها حالة الماسنجر.
فلو كانت حالتك مثلا Busy حيكون MSN.MyStatus = MISTATUS_BUSY و هكذا مع جميع المتغيرات السابقة
و علشان ماتعملش قاعدة If...Then...End If مليون مرة حنعمل Select Case كالآتى و طبعا فى الحدث Form_Load :
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Select Case MSN.MyStatus
Case MISTATUS_OFFLINE
Label1.Caption = "Offline"
Case MISTATUS_ONLINE
Label1.Caption = "Online"
Case MISTATUS_AWAY
Label1.Caption = "Away"
Case MISTATUS_BUSY
Label1.Caption = "Busy"
Case MISTATUS_BE_RIGHT_BACK
Label1.Caption = "Be Right Back"
Case MISTATUS_ON_THE_PHONE
Label1.Caption = "On The Phone"
Case MISTATUS_OUT_TO_LUNCH
Label1.Caption = "Out To Lunch"
Case MISTATUS_INVISIBLE
Label1.Caption = "Invisible"
End Select
</code><!-- php buffer end --> </code>
و نشغل البرنامج ....
إيه رأيكم ؟
samer kouta
23-12-2008, 03:04 PM
نيجى على أسهل حاجة فى الموضوع وهى
معرفة عدد الإيميلات الجديدة
و الكود بتاعها شديد البساطة و حنحطه مثلا فى الحدث Form_Load و هو :
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> On Error Resume Next </code></code>
<code style="white-space: nowrap;"><code> Me.Caption = "You have " & (MSN.UnreadEmailCount(MessengerAPI.MUAFOLDER_INBOX )) & " New E-mails" </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
و طبعا عدد الإيميلات الجديدة حينكتبلك فى أعلى الفورم بتاعتك و ممكن تغيره و تحطه فى المكان اللى تحبه
و جزئية On Error Resume Next علشان البرنامج مايعلقش فى حالة لو كنت أوفلاين .
و دلوقتى ندخل فى الكركبة :
معرفة الأشخاص الOnline لديك
حانفرض الشخص الواحد اللى على لستة الماسنجر بإسم msncontact و يكون as IMessengerContact
و حانفرض مجموعة الأشخاص كلهم اللى على لستة الماسنجر لديك بإسم msncontacts و يكونوا as IMessengerContacts
و نعرف ال msncontacts على أنهم MSN.MyContacts
و يكون الكود :
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Dim msncontact As IMessengerContact </code></code>
<code style="white-space: nowrap;"><code> Dim msncontacts As IMessengerContacts </code></code>
<code style="white-space: nowrap;"><code> Set msncontacts = MSN.MyContacts </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
و بعد كده حنختبر حالة كل شخص فى اللستة على انفراد فلو كانت حالته أى حاجة غير Offline نضيفه إلى قائمة الأشخاص الأونلاين
و لكن أين قائمة الناس اللى أونلاين ؟
بسيطة .. نحط ListBox و ليكن إسمها مثلا List1
و علشان نختبر الContacts فى الMSN واحد واحد نستخدم قاعدة For Each ... In ... Next
و نقارن حالة كل شخص على انفراد بالحالات Busy , Away .... إلا الحالة Offline فإن كان منهم نضيف إيميله اللى حنجيبه من هنا (msncontact.SigninName) إلى List1 بتاعتنا و الكود بتاع الحتة دى أهوه :
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> For Each msncontact In msncontacts </code></code>
<code style="white-space: nowrap;"><code> If msncontact.status = MISTATUS_ONLINE Or
msncontact.status = MISTATUS_INVISIBLE Or
msncontact.status = MISTATUS_UNKNOWN Or
msncontact.status = MISTATUS_AWAY Or
msncontact.status = MISTATUS_BE_RIGHT_BACK Or
msncontact.status = MISTATUS_IDLE Or
msncontact.status = MISTATUS_ON_THE_PHONE Or
msncontact.status = MISTATUS_OUT_TO_LUNCH Or
msncontact.status = MISTATUS_BUSY Then </code></code>
<code style="white-space: nowrap;"><code> List1.AddItem msncontact.SigninName </code></code>
<code style="white-space: nowrap;"><code> List1.Refresh </code></code>
<code style="white-space: nowrap;"><code> End If </code></code>
<code style="white-space: nowrap;"><code> Next </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
و مبدئيا حنحط الأكواد اللى فى المشاركة دى فى ال Form_Load
و بعد كده حنحتاج ننقلها إلى Function لسهولة تنفيذها لو أى حد كان أونلاين و بعد كده طلع أوفلاين علشان لو حطيناها فى ال Form_Load البرنامج حيقرأ الContacts الOnline عند بدء تشغيل البرنامج و بس .
لو الفكرة ما وصلتش مافيش مشاكل كل ده حييجى بعدين بإذن الله .
و حتة كده روشنة فى الموضوع
معرفة الNickName بتاعك
مافيش أسهل من كده
حانحط مثلا Label إسمها Label2 و نكتب برده فى الForm_Load
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Label2.Caption = MSN.MyFriendlyName </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
علشان مادخلش فى حتة جديدة و حد تايه منى :
متطلبات البرنامج لحد دلوقتى ListBox إسمها List1 و 2 Labels إسمهما Label1 و Label2
و الكود كله لحد دلوقتى :
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Public WithEvents MSN As MessengerAPI.Messenger </code></code>
<code style="white-space: nowrap;"><code> Public MsgrWindow As MessengerAPI.IMessengerWindow </code></code>
<code style="white-space: nowrap;"><code> Private Sub Form_Load() </code></code>
<code style="white-space: nowrap;"><code> Set MSN = New MessengerAPI.Messenger </code></code>
<code style="white-space: nowrap;"><code> Select Case MSN.MyStatus </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_OFFLINE </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Offline" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_ONLINE </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Online" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_AWAY </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Away" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_BUSY </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Busy" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_BE_RIGHT_BACK </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Be Right Back" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_ON_THE_PHONE </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "On The Phone" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_OUT_TO_LUNCH </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Out To Lunch" </code></code>
<code style="white-space: nowrap;"><code> Case MISTATUS_INVISIBLE </code></code>
<code style="white-space: nowrap;"><code> Label1.Caption = "Invisible" </code></code>
<code style="white-space: nowrap;"><code> End Select </code></code>
<code style="white-space: nowrap;"><code> On Error Resume Next </code></code>
<code style="white-space: nowrap;"><code> Me.Caption = "You have " & (MSN.UnreadEmailCount(MessengerAPI.MUAFOLDER_INBOX )) & " New E-mails" </code></code>
<code style="white-space: nowrap;"><code> Label2.Caption = MSN.MyFriendlyName </code></code>
<code style="white-space: nowrap;"><code> UpdateContacts </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Public Function UpdateContacts() </code></code>
<code style="white-space: nowrap;"><code> Dim msncontact As IMessengerContact </code></code>
<code style="white-space: nowrap;"><code> Dim msncontacts As IMessengerContacts </code></code>
<code style="white-space: nowrap;"><code> Set msncontacts = MSN.MyContacts </code></code>
<code style="white-space: nowrap;"><code> For Each msncontact In msncontacts </code></code>
<code style="white-space: nowrap;"><code> If msncontact.Status = MISTATUS_ONLINE Or
msncontact.Status = MISTATUS_INVISIBLE Or
msncontact.Status = MISTATUS_UNKNOWN Or
msncontact.Status = MISTATUS_AWAY Or
msncontact.Status = MISTATUS_BE_RIGHT_BACK Or
msncontact.Status = MISTATUS_IDLE Or
msncontact.Status = MISTATUS_ON_THE_PHONE Or
msncontact.Status = MISTATUS_OUT_TO_LUNCH Or
msncontact.Status = MISTATUS_BUSY Then </code></code>
<code style="white-space: nowrap;"><code> List1.AddItem msncontact.SigninName </code></code>
<code style="white-space: nowrap;"><code> List1.Refresh </code></code>
<code style="white-space: nowrap;"><code> End If </code></code>
<code style="white-space: nowrap;"><code> Next </code></code>
<code style="white-space: nowrap;"><code> End Function </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
تغيير الStatus
و حنستخدم فيها نفس الطريقة اللى استخدمناها فى معرفة الStatus و لكن بعكسها :
أولا نضع 7 CommandButtons و لتكن أسماؤهم command1 و Command2 و...... Command7
ثم نغير الCaption لكل منهم :
الأول ------- Online
الثانى ------- Appear Offline
الثالث ------- Away
الرابع ------- Busy
الخامس ------- Out To Lunch
السادس ------- On The Phone
السابع ------- Be Right Back
و الكود يكون كالآتى : MSN.MyStatus يساوى المتغير اللى بيعبر عن الحالة اللى إنت عاوزها و اللى كاتبهم فى بداية الموضوع
كود PHP:
<code style="white-space: nowrap;"> <!-- php buffer start --><code> Private Sub Command1_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_ONLINE </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Private Sub Command2_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_INVISIBLE </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Private Sub Command3_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_AWAY </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Private Sub Command4_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_BUSY </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Private Sub Command5_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_OUT_TO_LUNCH </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Private Sub Command6_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_ON_THE_PHONE </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> Private Sub Command7_Click() </code></code>
<code style="white-space: nowrap;"><code> MSN.MyStatus = MISTATUS_BE_RIGHT_BACK </code></code>
<code style="white-space: nowrap;"><code> End Sub </code></code>
<code style="white-space: nowrap;"><code> </code><!-- php buffer end --> </code>
و نجد أنه يمكن التغيير من حالة إلى أخرى فى منتهى السهولة
و يمكن استخدام هذه الإمكانية فى عمل Timer و استخدامه فى تغيير الحالة من Online إلى Appear Offline ثم إلى Online ثم Appear Offline و هكذا فيظهر عند الContacts بتوعك فلان Has signed in كذا مرة و بتوصل ساعات إنه الصفحة بتتملى والجهاز بيهنج عنده ....
فكرة غلسة بس لذيذة
بس خلى بالك إنه كده بتغلس على كل اللى Online عندك مش واحد بس و لو عايز واحد بس ممكن تعمله Block ثم UnBlock ... و هكذا عن طريق الكود اللى حاشرحه بإذن الله فى المشاركات القادمة مع Timer .
ايه رأيكم عايز ردود وتثبيت فتره من المشرف ان كام في اقبال من الاعضاء.
هذا الموضوع منقوووووقوووووقوووووقوووولللللللل من موقع dvd4arab للأمانة
وسيم أحمد الفلو
23-12-2008, 04:19 PM
موضوع جميل
إذا عندك من هيك مواضيع دلك حكلنا ياها
samer kouta
23-12-2008, 06:09 PM
لعيومك أخي وسيم, و ح حكلك ياها :p
عندك غلطه محترمة :p
موضوع جميل
إذا عندك من هيك مواضيع دلك حكلنا ياها
الشامي
23-12-2008, 06:25 PM
السلام عليكم ... كيفكم يا جماعة
الله يبارك فيك خيي سامر... وأنا رح كون من المتابعين ...
أخوكم:rolleyes:
وسيم أحمد الفلو
23-12-2008, 09:07 PM
أكيد بلا معنى اخ سامر :) :) :)
ولك يا زلمة هيك المرة حضيت بالفيديو تبع إختراع المي، معندك واحد تاني
السلام عليكم ... كيفكم يا جماعة
الله يبارك فيك خيي سامر... وأنا رح كون من المتابعين ...
أخوكم:rolleyes:
السلام عليكم أخ الشامي.....
انّو الواحد بدّو واسطة لحتّى يحكي معك..............
يا زلمة شبالك صرلي شي شهر باعتلك رسالة على الخاص و اسّا لهلّأ منّك حاسس فيني....
شو بنا.....ازا مفكّرني عم امزح ....فأما منّي عم امزح ......عنجد بدي غير يلي التلّك عنّو........
سلام ................بتمنّى عليك انّو نكون أصدقاء
samer kouta
05-01-2009, 08:20 PM
السلام عليكم أخ الشامي.....
انّو الواحد بدّو واسطة لحتّى يحكي معك..............
يا زلمة شبالك صرلي شي شهر باعتلك رسالة على الخاص و اسّا لهلّأ منّك حاسس فيني....
شو بنا.....ازا مفكّرني عم امزح ....فأما منّي عم امزح ......عنجد بدي غير يلي التلّك عنّو........
سلام ................بتمنّى عليك انّو نكون أصدقاء
لم يصل شيئا وأرجو أن تعيد الإرسال
Powered by vBulletin™ Version 4.0.3 Copyright © 2010 vBulletin Solutions, TranZ by Almuhajir