تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الآن تعلم برمجة مفتاح ساخن HotKey بالفيجوال بيسك دوت نت
#1
كاتب الموضوع : م إسماعيل علي النجار

السلام عليكم ورحمة الله وبركاته

كلكم تعرفون المفتاح الساخن والذي يقوم بأمر معين لأحد البرامج
مثلاً عندما تكبس WinLogo + R يشتغل عندك الـ Run
أو عندما تكبس Alt + M لبرنامج TuneUp Memory Optimizer
فيقوم بتنظيف الذاكرة يدوياً...وهناك الكثير من الأمثلة

على كل حال اليوم سنتعلم كيف نبرمج أي مفتاح ونخصصه لبرنامجنا ليقوم بأمر معين

ملاحظة: ستكون البرمجة لـ Visual Basic .Net

بعد ما نقتح مشروعا جديدا سنقوم ببرمجة المفتاح Alt+L

نقوم بتعريف هذه الثوابت ونسند لها القيم:


كود:

Public Const MOD_ALT As Integer = &H1 'لتعريف مفتاح Alt


Public Const VK_L As Integer = &H4C 'لتعريف المفتاح L

Public Const WM_HOTKEY As Integer = &H312


ومن ثم نعرف الدوال التالية:




كود:

'نعرف دوال API التالية


'لتسجيل المفتاح الساخن

Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal ID As Integer, ByVal fsModifires As Integer, ByVal vKey As Integer) As Integer

'لحذف المفتاح الساخن

Public Declare Function UnRegisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal ID As Integer) As Integer


سوف نستدعي تلك الدوال لتسجبل المفتاح وحذفه بعد إنهاء البرنامج



الآن نكتب الكود التالي والذي سيقوم بتنفيذ أي أمر عند ضغط المفتاح الساخن:




كود:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_HOTKEY Then



MsgBox(DateTime.Now.Second.ToString)

'ضعالكودالذي يناسبك هنا

End If


MyBase.WndProc(m)

End Sub


الآن وفي حدث Load نضع الكود التالي والذي يقوم بتسجيل المفتاح الساخن:





كود:
RegisterHotKey(Me.Handle, 9, MOD_ALT, VK_L)



كما ترى فإن الثابت MOD_ALT الذي عرفناه مسبقا فيدل على المفتاح


Alt ونستطيع أن تضع مفتاحا أخر مثل Shift أو Ctrl



وانتظر قليلا عزيزي المبرمج فسأزدوك بجدول لتعرف كل المفاتيح على الكيبورد



أما VK_L فهو الثابت الذي يدل على المفتاح L وأيضا تستطيع أن تضع أي مفتاح آخر من خلال الجدول الذي سأعطيك إياه.



ولكن يجب الانتباه بأنه يجب أن نحذف المفتاح عند انتهاء البرنامج


لذلك نضع في حدث FormClosing الكود التالي:




كود:
UnRegisterHotKey(Me.Handle, 9)



عزيزي المبرمج المشاغب لاحظ الرقم 9 الذي وضعناه في كلا الكودين السابقين


وهذا الرقم هو الذي يميز مقبض نافذة برنامجك عن غيره


وسوف تستخدمه لحذف المفتاح الساخن الخاص بمقبض نافذة برنامجك


لهذا لا تنسى بأن تضع الرقم ذاته الذي وضعته في كود إنشاء المفتاح


عند حذف المفتاح قبل إنهاء التطبيق




وبهذا أكون قد أنهيت الشرح وأترككم مع الروابط الملحقة:



رابط لصفحة تحوي جميع تعاريف المفاتيح على الكيبورد:


http://msdn.microsoft.com/en-us/library/aa926323.aspx


عاشق الابداع
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] تعلم كيف تصنع برنامج لنشر منشورات لحساب الفيس بوك الخاص بك Basil Abdallah 8 1,378 01-07-18, 01:21 AM
آخر رد: YousefOkasha
  خلفية مثل الفجوال بيسك محمود صالح 0 207 29-12-17, 12:52 PM
آخر رد: محمود صالح
  [مقال] برمجة إتصال TCP عبر الشبكة المحلية Fantastico 1 245 09-11-17, 04:57 PM
آخر رد: Amir_Alzubidy
  [VB.NET] مجموعة من الدروس الخاصة بالفيجوال بيسك دوت نت ayoub 1 637 18-03-17, 12:05 AM
آخر رد: sendbad100
Information تحميل برنامج الفيجوال بيسك 2010 download visual basic 2010 mohamed atef2018 1 11,435 31-12-16, 11:44 PM
آخر رد: Basil Abdallah
  [نقاش] هل تعلم هذا عن Select Case ali.alfoly 3 773 30-12-16, 07:00 PM
آخر رد: Basil Abdallah
  [سؤال] اريد كود بالفيجوال بيسك 2008 يقراء سريال المازربورد nabil.1710 5 1,632 13-06-16, 12:16 AM
آخر رد: محمد سالم المحترف
  هل تعلم؟ Aly El-Haddad 7 1,864 17-08-15, 01:59 AM
آخر رد: عبد الله
  [حصرياً] و لأول مرة : درس برمجة لعبة x-o أسامة أحمد 4 2,276 04-03-15, 12:46 PM
آخر رد: abulayth
  حصريا لمنتدى فيجوال بيسك لكل العرب شرح مكتبه علي سبايسى (alysbisydata) alimse 9 3,086 03-01-15, 04:10 PM
آخر رد: abulayth

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


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