السلام عليكم
سأحاول في هذا الموضوع تقديم بعض الوضائف المتعلقة بلوحة مفاتيح حاسوب الكف والتي ربما تساعد في إضافة إختصارات للبرامج المطورة وتصميم الألعاب وغير ذلك.
الجزء الرئيسي من الكود هو كما يلي
protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.KeyCode)
{ case (Keys.Up): /* do something*/ break;
case (Keys.Down): /* do something*/ break;
case (Keys.Left): /* do something*/ break;
//........
}
base.OnKeyDown(e);
}هذه الدالة من نوع وتستعي نفسها في حلقة لا متناهية وفي كل مرة يكون هناك تنصت ما إن تم النقر على أحد الأزرار أم لا وهذا التنصت لا يشمل فقط محتويات لوحة المفاتيح بل أزرار الإتجاهات أيضا.
وفق الإتجاه الذي تم تفعيله من خلال إختيار أحد أزرار الإتجاهات قمت بتحريك الصورة الموجودة وسط الشاشة في حدود معينة
ويمكن أيضا قراءة حال زر ما في لوحة المفاتيح بإعتماد إحدى الدالتان :GetKeyState , GetAsyncKeyState واللتان يتم تعرفهما بالكيفية التالية.
[DllImport("coredll.dll")]
public static extern int GetAsyncKeyState(int vkey);
[DllImport("coredll.dll")]
private extern static short GetKeyState(int nVirtKey);وأخيرا أضفت الدالة SipShowIM لفتح أو إغلاق لوحة المفاتيح وفق قيمة المدخل
[DllImport("coredll.dll")]
public extern static void SipShowIM(uint dwFlag);