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

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

فبراير 1, 2009 أضف تعليق Go to comments

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

 

Advertisements
التصنيفات :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 مدونون معجبون بهذه: