تحكم في skype عن طريق ال vb6

achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
في: شباط 11, 2009, 03:05:57 مسائاً
السلام عليكم ورحمة الله وبركاته

في البداية  يجب علينا أولا أن نحمل تغليف الدوال التي تتحكم ببرنامج المحادثة المشهور skype  وهذا التغليف يتمثل في المرجع الموجود في الملف Skype4com.dll والذي يوفر لنا تحكم  كامل بالبرنامج من داخل الvb6

يمكنكم تحميله من الرابط

إدراج المرجع إلى  المشروع:

بعد  تحميل الملف Skype4com.dll نفتح مشروع جديد على الvb6 ونقوم باضافة مرجع المكتبة  الموجودة بالملف Skype4com.dll كما في الصورة التالية:




البدء بالتحكم :
الآن يمكننا انشاء كائن جديد  يتحكم ببرنامج الskype انطلاقا من الفئة Skype التي توفرت لنا بعد اضافة المرجع  المذكور سابقا


 كود PHP:
 
 
شفرة: [اختيار]
Public oSkype As New Skype  


الآن  يمكننا تشغيل الskype باستخدام الكود التالي :

 كود PHP:
 
If Not oSkype.Client.IsRunning Then
     oSkype
.Client.Start
End
If  


[/SIZE][/FONT]
لكي نتمكن من عرض معلومات حسابنا نكتب


 كود PHP:
 
     
شفرة: [اختيار]
[COLOR=#000000][COLOR=#0000BB][/COLOR][/COLOR]oSkype.Client.OpenDialog ("PROFILE")  


[/SIZE][/FONT]
عند أول تشغيل أول استخدام لدوال الAPI الخاصة  بالskype يتم عرض نافذة تحذيرية



هذه النافذة تطلب من  السماح لبرنامجنا بالتحكم في الskype طبعا نوافق
لكي يعرض لنا نافذة  المعلومات الخاصة بحسابنا

جلب قائمة الأصدقاء :
نضيف  ListBox للمشروع ونقوم بكتابة هذا الكود

 كود PHP:
 
شفرة: [اختيار]
Dim oFriend As User
List1.Clear
For Each oFriend In oSkype.Friends
 List1.AddItem oFriend.Handle
Next  

[/SIZE]
جلب معلومات الأصدقاء:

بعد أن أضفنا  ليست تحوي قائمة الأصدقاء نقوم بجلب المعلومات الأساسية للأصدقاء الموجودين  بالقائمة في 5 Labels




 كود PHP:
 
 
شفرة: [اختيار]
[COLOR=#000000][COLOR=#0000BB][/COLOR][/COLOR]Private Sub List1_Click()
On Error Resume Next
 Dim i As Integer
 If List1.ListIndex >= 0 Then
   i = List1.ListIndex + 1
   Label1.Caption = oSkype.Friends(i).FullName
   Label2.Caption = oSkype.Friends(i).Birthday
   Label3.Caption = oSkype.Friends(i).About
   Label4.Caption = oSkype.Friends(i).RichMoodText
   Label5.Caption = oSkype.Friends(i).OnlineStatus
 End If
End Sub  

[/SIZE]البحث عن جهات اتصال  (أصدقاء):

نضيف ListBox أخرة وصندوق نص لكي  يتم كتابة الاسم المراد البحث عنه ويتم اضافة الناتج داخل الليست  بوكس  

 كود PHP:
 
شفرة: [اختيار]
List2.Clear
  If Text1 <> "" Then
      Set ucContacts = oSkype.SearchForUsers(Text1)
      For Each uContact In ucContacts
        List2.AddItem uContact.Handle & "--" & uContact.Country & "--" & uContact.FullName
      Next
 
End If  


[/SIZE][/FONT]
اضافة جهة اتصال إلى قائمة  الأصدقاء:
بعمل double Click على قائمة البحث الموجودة في الليست بوكس يمكننا اضافة  جهة اتصال في القائمة باسناد القيمة budPendingAuthorization للخاصية BuddyStatus  للكائن المعبر عن جهة الاتصال والدي يكون من النوع User
 كود PHP:
 
شفرة: [اختيار]
Dim uContact As User
If lstContacts.ListIndex >= 0 Then
    Set uContact = ucContacts(List2.ListIndex + 1)
    If Not uContact Is Nothing Then
      If MsgBox("Ajout de : " & uContact.Handle, vbYesNo) = vbYes Then
          uContact.BuddyStatus = budPendingAuthorization
      End If
    End If
End If  


[/SIZE]
حذف جهة اتصال :

هنا أصبحت جهة  الاتصال عبارة عن صديق داخل القائمة ولقد رأينا كيف نجلب قائمة الأصدقاء
ولحذف  صديق من القائمة نسند للكائن الممثل للصديق القيمة budDeletedFriend بعد تحديده  طبعا
 كود PHP:
 
شفرة: [اختيار]
[COLOR=#000000][COLOR=#0000BB][/COLOR][/COLOR] If List1.ListIndex >= 0 Then
   i = List1.ListIndex + 1
   oSkype.Friends(i).BuddyStatus = budDeletedFriend
End If  


[/SIZE]
تحديد البرنامج :

 كود PHP:
 
شفرة: [اختيار]
oSkype.Client.Focus  


[/SIZE]

الإخفاء:

 كود PHP:
 
شفرة: [اختيار]
oSkype.Client.Minimize  

[/SIZE]
التحكم بالأحداث  :

التحكم بالأحداث ليس متاحا إلا اذا عرفنا  الكائن الذي يتحكم بالبرنامج من أجل استغلال الأحداث الموجودة به  


 كود PHP:
 
شفرة: [اختيار]
Public WithEvents oSkype As Skype  


بذلك  فقط يمكننا الوصول للأحداث المشروحة في الرابط
https://developer.skype.com/Docs/Sky...b/ISkypeEvents
[/SIZE][/FONT]
يجب أن نربط الآن الكائن ببرنامجنا لاستقبال أحداثه  
 كود PHP:
 
شفرة: [اختيار]
Private Sub Form_Load()
Set oSkype = New Skype
oSkype.Attach
End Sub  

[/SIZE]

تحميل الامثلة من المصدر : Developez.com
المثال الاول :
المثال  الثاني