02-10-12, 08:23 AM
كاتب الموضوع : م إسماعيل علي النجار
السلام عليكم ورحمة الله وبركاتهكلكم تعرفون المفتاح الساخن والذي يقوم بأمر معين لأحد البرامج
مثلاً عندما تكبس 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
عاشق الابداع