شاطر
اذهب الى الأسفل
عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012
معاينة صفحة البيانات الشخصي للعضو

مراقبة الملفات الموجودة في الحافظة Clipboard

في الخميس أكتوبر 18, 2012 8:51 pm
في بعض الاحيان قد تحتاج الى كتابة كود لمراقبة الملفات الموجودة في الحافظة Clipboard ، وأدنى ما تحتاجه غالبا هو معرفة المسار الكامل للملف والعملية ادت الى وضع الملف في الحافظة سواء كانت نسخ copy او قص Cut ، قد تتخيل لوهلة أن العملية قد تكون معقدة وصعبة للغاية ، لكن دعني اخبرك بان الكائن My.computer.clipboard الخاص بالتعامل مع حافظة النظام يحتوي على طرق Methods تسهل معرفه محتوى الحافظة سواء كان صوت او نص او ملفات ، فلنتابع معا الفكرة التي اقتبستها من احد المواقع الاجنبية .

الطريقة GetFileDropList تعود لنا بـ Collection تمثل قائمة بالملفات الموجودة في الذاكرة ، وسيكون بإمكاننا بسهوله كتابة كود كالتالي للحصول عليها في اداة TextBox متعددة الاسطر:
الكود:

        If My.Computer.Clipboard.ContainsFileDropList = True Then
            Dim FileNameCollection As Collections.Specialized.StringCollection = _
                          My.Computer.Clipboard.GetFileDropList()
            For Each FileName As String In FileNameCollection

                TextBox1.AppendText(FileName & vbNewLine)
            Next

        End If
هكذا نكون قد تمكنا من الحصول على قائمة بأسماء الملفات ، والآن نرغب في الحصول على الاجراء الذي أدى الى وجود هذه الملفات في الحافظة ، هل هو نسخ Copy أم نقل Move ؟

للحصول على نوع الاجراء Drop Effect Type، سنقوم بعمل كائن من النوع Object ونسند له القيمة:
الكود:

My.Computer.Clipboard.GetData("Preferred DropEffect")
، نقوم بعدها بقراءه اول اربع بايتات الى مصفوفة ، يمثل الحرف الأول منها نوع الاجراء ، وهو المهم هنا !

السطور التالية توضح ذلك :
الكود:

            Dim DropEffectData(3) As Byte
            Dim DropEffectCheck As Object = _
                My.Computer.Clipboard.GetData("Preferred DropEffect")
            DropEffectCheck.Read(DropEffectData, 0, DropEffectData.Length)
والآن اصبحنا جاهزين تماما للقيام بالمهمه الكاملة ، لذلك قمت بوضع مثال بسيط هذا هو الكود الخاص به :
الكود:

‘*>——————————————————————-
        ‘*>Handle Droplist
        ‘*>——————————————————————-
        If My.Computer.Clipboard.ContainsFileDropList() Then

            ‘*>——————————————————————-
            ‘*>Get DropEffect Type
            ‘*>——————————————————————-
            Dim DropEffectData(3) As Byte
            Dim DropEffectCheck As Object = _
                My.Computer.Clipboard.GetData("Preferred DropEffect")
            DropEffectCheck.Read(DropEffectData, 0, DropEffectData.Length)

            Dim DropEff As DragDropEffects
            Dim DropEffType As String

            Select Case DropEffectData(0)
                Case 2
                    DropEff = DragDropEffects.Move
                    DropEffType = "Move"
                Case 5
                    DropEff = DragDropEffects.Copy
                    DropEffType = "Copy"
                Case Else
                    DropEffType = "???"
            End Select

            DropEffect.Text = DropEffType

            ‘*>——————————————————————-
            ‘*>Get File Names
            ‘*>——————————————————————-
            Dim FileNameCollection As Collections.Specialized.StringCollection = _
                                      My.Computer.Clipboard.GetFileDropList()
            For Each FileName As String In FileNameCollection

                DataText.AppendText(FileName & vbNewLine)
            Next

        End If
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى