الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس: كيفية التبديل بين زري الفأرة برمجيا

بدأه Mohammad Elsheimy في 21 يوليو 2009 · 6 رد · 2,269 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قمت بكتابة هذا الدرس سابقا في موقعي
.

نظرة خاطفة

درسنا اليوم يتكلم عن طريقة التبديل بين زري الفأرة عن طريق جعل زر الفأرة الأيسر يعمل عمل الأيمن والأيمن يعمل عمل الأيسر وهكذا.

مقدمة

يمكنك التبديل بين زري الفأرة عن طريق لوحة تحكم الويندوز Control Panel عن طريق خيارات الفأرة Mouse. نلاحظ في هذه الشاشة أنه يمكنك التبديل بين زري الفأرة عن طريق اختيار "Switch primary and secondary buttons".

swap-mouse-buttons.jpg

عن طريق هذا الاختيار يمكنك التبديل بين الزرين وبالتالي يعمل عمل الزر الأيسر عمل الأيمن فيمكنك من خلال الأيسر فتح القوائم المنسدلة وغيرها. ويقوم الزر الأيمن بعمل الأيسر فيفتح البرامج وهكذا. ويسمى الزر الذي يقوم بفتح البرامج وغيرها والشاشات وهو الأيسر في وضعنا هذا يسمى الزر الأساسي Primary أما الآخر فيسمى الزر الثانوي Secondary، ولهذا إذا بدلنا الزرين يصبح الأيسر هو الثانوي والأيمن هو الـ Primary وهكذا.

لعمل ذلك برمجيا ستحتاج إلى استخدام دالة من دوال الويندوز أي Win32 API Function فإنه -للأسف- بيئة الدوت نت لا توفر لك إمكانية للتبيدل بين الزرين فلهذا سوف نستخدم دالة من دوال الويندوز وهذه الدالة هي SwapMouseButtons. وهذه الدالة معرفة كالتالي:

BOOL SwapMouseButton(BOOL fSwap);

نلاحظ أن هذه الدالة من الدوال البسيطة جدا فهي تأخذ مدخل Argument واحد وهو منطقي Boolean يأخذ قيمة إما True وذلك للتبديل أو False للاسترجاع. وتقوم هذه الدالة بإرجاع أيضا إما True وذلك إذا نجحت الدالة ولم يحدث أي خطأ، أو False إذا حدث خطأ في الدالة وفشلت العملية.

التطبيق

لكي يمكنك النداء على دالة من دوال الويندوز يجب عليك الأول كتابة تعريفها قبل النداء عليها. ويسمى تعريفها بـ PInvoke Method ويكون تعريفها كالتالي:

إذا كنت تستخدم C# يجب عليك إضافة جملة using للـ Namespace المسمى بـ System.Runtime.InteropServicesو ذلك للعنصر DllImport أو على الأقل قم بكتابة اسم العنصر بالكامل أي مع الـ Namespace الخاصة به.

لاحظ أن السطور التالية لا يمكن تغييرها بل هي قاعدة ثابتة في تعريف دوال الويندوز في بيئة الدوت نت.

// C# Code
[DllImport("user32.dll")]
static extern bool SwapMouseButton(bool fSwap);

-----------------------------

' VB.NET
Declare Auto Function SwapMouseButton Lib "user32.dll" (ByVal fSwap As Boolean) As Boolean

الكود التالي هو عبارة عن دالتين الأول تبدل الأزرار فتجعل الزر الأيمن هو الأساسي Primary أي بدلا من الأيسر والأيسر بدلا من الأيمن، والدالة الأخرى تعكس هذا فتجعله طبيعيا الأيسر هو الأساسي والأيمن هو الثانوي Secondary.

// C# Code

public void MakeRightButtonPrimary()
{
	SwapMouseButton(true);
}

public void MakeLeftButtonPrimary()
{
	SwapMouseButton(false);
}

-----------------------------

' VB.NET Code

Public Sub MakeRightButtonPrimary()
	SwapMouseButton(True)
End Sub

Public Sub MakeLeftButtonPrimary()
	SwapMouseButton(False)
End Sub

خاتمة

تعلمنا في هذ الدرس بعض الأشياء:

  1. كيفية التبديل بين زري الفأرة.
  2. دالة التبديل الخاصة بالويندوز.
  3. كيفية النداء على دوال الويندوز.

وفي الدروس القادمة بإذن الله تعالى نشرح أكثر وأكثر في دوال الويندوز وغيرها ونقدم معلومات مختلفة وجديدة.

تم تعديل هذه المشاركة بواسطة Mohammad Elsheimy في 21 يوليو 2009 في 15:17

1
#2

صراحة دروسك جميلة ،، و اسلوبك رائع ،،

اتمنى منك الاستمرار

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#3

رائع أخى محمد الشيمى

انا كنت استخدم طريقة اخرى و هى انى Target حدث ال Mouse Click و ابدل الأزرار :D

لكن الطريقة اللى حضرتك شرحتها افضل بكثيير

مشكور جدا عزيزى و يا ريت تتحفنا دايما

تقبل تحياتى

#4

شكرا جزيلا

#5

فعلا درس رائع جداً

اللهم صلّ على سيدنا محمد وعلى آله وصحبه وسلّم


موقعي الرياضي

#6

درس رائع جدا

تسلم ايدك

#7

درس رائع وتم التطبيق ،، بارك الله فيك ....

مواضيع مشابهة