تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] وش عمل هذه الكلمة handle
#1
السلام عليكم 


في البداية هاذا كود لي تحميل الاسماء في الليست بوكس 

اسماء السكايب

الكود  

PHP كود :
Public Class Form1
    Dim skype 
As New SKYPE4COMLib.Skype

    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        On Error Resume Next
        For Each uub In skype
.Friends

            ListBox1
.Items.Add(uub.handle)
 
       Next
    End Sub 

لو نلاحض في كلمة handle بعد uub 

الكود لو وضعته بي كلمة handle راخ يضيف لي الاسماء وكل شي تمام لاكن لو وضعت كلمة uub لحاله راح يضهر لي هاذي الجملة 

PHP كود :
System.__ComObject 



المطلوب من السوال وش عمل كلمة handle 


وشكرا
الحمد لله رب العالمين على كل شي
الرد
تم الشكر بواسطة:
#2
Handle المفروض تستعمل لجلب رقم مميز يشير الى GUI الذي تريد جلبه
الرقم يكون في العادة بهذا الشكل (13495631)

لكن في حالتك يبدو ان مصمم الكلاس يتفلسف فكيف ان Handle ترجع قيمة نصية !!!!
لان Handle ترجع قيمة من رقمية وليست نصية
الرد
تم الشكر بواسطة: hassan , hassan
#3
Handle عبارة عن IntPtr وغالبا معطم DataTypes التالية يمكن تحويلها الي IntPtr :

System.Char
System.Int8
System.UInt8
System.Int16
System.UInt16
System.Int32
System.UInt32
System.Int64
System.UInt64
System.UIntPtr

غالبا من كتب الكود له هدف معين لإستخدام هذا الأسلوب لإسترجاع بيانات محددة خاصة ب Com Objects
و تقريبا و الله أعلم من كتب الكلاس بهذا الأسلوب يسترجع شئ اسمه  binary interface أو بمعني أدق C++ interface

الدالة التالية توضح كيفية تحويل System.Char الي IntPtr

كود :
Friend Function GetIntPtr(value As Object) As IntPtr
    Select Case value.GetType().FullName
        Case "System.Char"
            Return New IntPtr(AscW(CChar(value)))
    End Select
    Throw New ArgumentException("value")
End Function


وهذه دالة تقوم بتحويل String الي IntPtr

كود :
  Friend Function StringToIntPtr(str As String) As IntPtr
       Dim ptr As IntPtr = CType(Nothing, IntPtr)
       ptr = System.Runtime.InteropServices.Marshal.StringToHGlobalUni(str)
       Return ptr
   End Function
وهذه دالة اخري تقوم بتحويل IntPtr الي String


كود :
   Friend Function IntPtrToString(ptr As IntPtr) As String
       Dim result As String = System.Runtime.InteropServices.Marshal.PtrToStringUni(ptr)
       Return result
   End Function


و طبقا لمايكروسوفت يجب علينا أن نقوم بتحرير الذاكرة لذلك كالأتي



كود :
Friend Sub FreeMemory(ptr As IntPtr)
       System.Runtime.InteropServices.Marshal.FreeHGlobal(ptr)
   End Sub


و الكود التالي يوضح كيفية استخدام الكود



كود :
       Dim str As String = "Visual Basix For Arab"
       Dim ptr As IntPtr = CType(Nothing, IntPtr)

       ' change string to IntPtr
       ptr = StringToIntPtr(str)

       ' change Intptr to String
       Dim txt As String = IntPtrToString(ptr)

       ' According to MSDN must free unmanaged memory block
       FreeMemory(ptr)
الرد
تم الشكر بواسطة: hassan
#4
(22-07-15, 06:00 AM)الشاكي لله كتب : Handle المفروض تستعمل لجلب رقم مميز يشير الى GUI الذي تريد جلبه
الرقم يكون في العادة بهذا الشكل (13495631)

لكن في حالتك يبدو ان مصمم الكلاس يتفلسف فكيف ان Handle ترجع قيمة نصية !!!!
لان Handle ترجع قيمة من رقمية وليست نصية

ههههههههههههههههههه ضحكتني ( لكن في حالتك يبدو ان مصمم الكلاس يتفلسف فكيف ان Handle ترجع قيمة نصية !!!! )

ههههههههههههههه 

شكله صدق يتفلسف لنه الي قاعد اقراه غير عن عمل هاذا الكلمة في هاذا الكود

على العموم الله يعطيك العافيه ماقصرت

(22-07-15, 11:19 AM)silverlight كتب : Handle عبارة عن IntPtr وغالبا معطم DataTypes التالية يمكن تحويلها الي IntPtr :

System.Char
System.Int8
System.UInt8
System.Int16
System.UInt16
System.Int32
System.UInt32
System.Int64
System.UInt64
System.UIntPtr

غالبا من كتب الكود له هدف معين لإستخدام هذا الأسلوب لإسترجاع بيانات محددة خاصة ب Com Objects
و تقريبا و الله أعلم من كتب الكلاس بهذا الأسلوب يسترجع شئ اسمه  binary interface أو بمعني أدق C++ interface

الدالة التالية توضح كيفية تحويل System.Char الي IntPtr

كود :
Friend Function GetIntPtr(value As Object) As IntPtr
    Select Case value.GetType().FullName
        Case "System.Char"
            Return New IntPtr(AscW(CChar(value)))
    End Select
    Throw New ArgumentException("value")
End Function


وهذه دالة تقوم بتحويل String الي IntPtr

كود :
  Friend Function StringToIntPtr(str As String) As IntPtr
       Dim ptr As IntPtr = CType(Nothing, IntPtr)
       ptr = System.Runtime.InteropServices.Marshal.StringToHGlobalUni(str)
       Return ptr
   End Function
وهذه دالة اخري تقوم بتحويل IntPtr الي String


كود :
   Friend Function IntPtrToString(ptr As IntPtr) As String
       Dim result As String = System.Runtime.InteropServices.Marshal.PtrToStringUni(ptr)
       Return result
   End Function


و طبقا لمايكروسوفت يجب علينا أن نقوم بتحرير الذاكرة لذلك كالأتي



كود :
Friend Sub FreeMemory(ptr As IntPtr)
       System.Runtime.InteropServices.Marshal.FreeHGlobal(ptr)
   End Sub


و الكود التالي يوضح كيفية استخدام الكود



كود :
       Dim str As String = "Visual Basix For Arab"
       Dim ptr As IntPtr = CType(Nothing, IntPtr)

       ' change string to IntPtr
       ptr = StringToIntPtr(str)

       ' change Intptr to String
       Dim txt As String = IntPtrToString(ptr)

       ' According to MSDN must free unmanaged memory block
       FreeMemory(ptr)

ماقصرت يا الغالي شرحت الكود وزيادة


الله يعطيك العافيه ماقصرت
الحمد لله رب العالمين على كل شي
الرد
تم الشكر بواسطة: مبرمج بلا حدود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Heart [سؤال] السلام علام مطلوب طريقة التحقق من كول الكلمة المتكرار في اليسة بوكس وضعها في التيكس ب Ali 2020 0 503 01-10-20, 12:38 AM
آخر رد: Ali 2020
  كيف اجعل الكلمة في Textbox شفافة VBMaged 15 4,306 07-04-20, 05:23 PM
آخر رد: waelmohd
  طلب كود يقوم مقام (دبل كليك).. وكود للانتقال إلى الكلمة التالية في النص waelalmsry75 2 655 31-01-20, 03:54 AM
آخر رد: waelalmsry75
  Error creating window handle اسامه الهرماوي 3 1,618 09-10-19, 12:57 AM
آخر رد: اسامه الهرماوي
  [VB.NET] بحث عن الكلمة وتلوينها بالداتاجريدفيو محمد اسماعيل 3 859 19-05-19, 04:21 AM
آخر رد: محمد اسماعيل
  مساعدة في جعل الإستعلام يبحث عن جزء من الكلمة Hamoody 5 845 27-01-19, 09:23 PM
آخر رد: Hamoody
  مشكلة في حفظ اعدادات البرنامج My.Setting ... بيحفظ الكلمة الأولي فقط . DanyGhost2010 11 2,300 30-12-17, 10:31 PM
آخر رد: طالب برمجة
  [كود] ScreenToClient(PictureBox1 .Handle, mPos) أسامة 1 1,503 13-11-15, 12:35 AM
آخر رد: أسامة
  طلب بحث باي جزء من الكلمة المهنا 17 4,813 06-11-14, 12:19 AM
آخر رد: saif_s80
  [VB.NET] كيف معرفة handle ابراهيم مراد 1 1,234 12-07-14, 01:04 PM
آخر رد: Riad dz

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم