تقييم الموضوع :
  • 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)

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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [كود] ScreenToClient(PictureBox1 .Handle, mPos) أسامة 1 754 13-11-15, 12:35 AM
آخر رد: أسامة
  طلب بحث باي جزء من الكلمة المهنا 17 1,271 06-11-14, 12:19 AM
آخر رد: saif_s80
  [VB.NET] كيف معرفة handle ابراهيم مراد 1 367 12-07-14, 01:04 PM
آخر رد: Riad dz
  [سؤال] Unable to get the window handle for the 'WebBrowser' control. Windowless ActiveX cont سعود 1 625 27-10-13, 04:09 PM
آخر رد: الشاكي لله
  اقتصاص ما بعد الكلمة في textbox Mr.ILI 1 610 18-10-13, 01:50 AM
آخر رد: ناجي إبراهيم
  كيف اعرف موقع الكلمة من الــ Richtextbox أبو ريناد الحربي 10 1,031 08-07-13, 10:00 PM
آخر رد: أبو ريناد الحربي
  شرط هل الكلمة تحتوي على حرف "ن" cvcvcv 2 285 09-05-13, 10:04 AM
آخر رد: cvcvcv
  كيف اجعل الكلمة في Textbox شفافة VBMaged 14 1,448 20-03-13, 08:48 PM
آخر رد: VBMaged

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


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