الرئيسية > Visual Basic .Net > مراقبة الملفات الموجودة في الحافظة Clipboard

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

في بعض الاحيان قد تحتاج الى كتابة كود لمراقبة الملفات الموجودة في الحافظة 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

 

التصنيفات :Visual Basic .Net الوسوم:, ,
  1. عز
    ديسمبر 4, 2009 الساعة 2:20 م

    كود مفيد جدا لحدث الكليبورد .
    شكرا للمجهود

  1. No trackbacks yet.

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: