السلام عليكم...
الاحظ في عند كتابة الباسوورد في الماسنجر اذا كان ال Caps Lock شغال يعطينا تنبيه..
كيف اعرف في برنامجي اذا كان Active ولا لأ
شكرا
السلام عليكم...
الاحظ في عند كتابة الباسوورد في الماسنجر اذا كان ال Caps Lock شغال يعطينا تنبيه..
كيف اعرف في برنامجي اذا كان Active ولا لأ
شكرا
up
الحل الذي أعرفة باستخدام Windows API ولا أدري إن كان هناك حل مباشر من ضمن الفريموورك ولكن الحل سهل جدا وهو يعمل بشكل ممتاز على 2002 و 2003 و 2005 بدون أية مشاكل
يمكنك معرفة حالة أي من مفاتيح الأقفال Caps أو Num أو Scroll باستخدام الدالة GetKeyState من المكتبة user32.dll وذلك باستخدام استيرادات WIndows API كالتالي
أولا - ستحتاج لتعريف الإجراء حتى يمكننا استخدامه
' Windows Api Function declaration Private Declare Auto Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Int32) As Short
ثانيا - سنحتاج لتعريف الثوابت الخاصة بمفاتيح الأقفال التي نود التعرف عليها
' Key Lock Declaration Private Const VK_CAPITAL = &H14 Private Const VK_NUMLOCK = &H90 Private Const VK_SCROLL = &H91
ثالثا - يمكننا الآن الاستعلام عن حالة أي من المفاتيح كالتالي
' Caps Lock Status TextBox1.Text = GetKeyState(VK_CAPITAL).ToString ' Num Lock Status TextBox1.Text = GetKeyState(VK_NUMLOCK).ToString ' Scroll Lock Status TextBox1.Text = GetKeyState(VK_SCROLL).ToString
تم تعديل هذه المشاركة بواسطة samerselo في 5 مايو 2006 في 17:31
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
وإذا أحببت يمكننا تغليف العملية في فئة Class كالتالي
Public Class LocksStatus #Region " Declarations " ' Key Lock Declaration Private Const VK_CAPITAL = &H14 Private Const VK_NUMLOCK = &H90 Private Const VK_SCROLL = &H91 ' Windows Api Function declaration Private Declare Auto Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Int32) As Short #End Region #Region " Properties " Public ReadOnly Property GetCapsLockState() As Boolean Get Return CBool(GetKeyState(VK_CAPITAL)) End Get End Property Public ReadOnly Property GetNumLockstate() As Boolean Get Return CBool(GetKeyState(VK_NUMLOCK)) End Get End Property Public ReadOnly Property GetScrollLockState() As Boolean Get Return CBool(GetKeyState(VK_SCROLL)) End Get End Property #End Region End Class
ويكون استخدام الفئة الجديدة في غاية السهولة كالمثال
Dim Ls As New LocksStatus Label1.Text = Ls.GetCapsLockState.ToString Label2.Text = Ls.GetNumLockstate.ToString Label3.Text = Ls.GetScrollLockState.ToString
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
أشكرك أخي samerselo على ردك الوافي...
سأجرب الطريقة وارد لك..
جزاك الله الف خير
هذا الموضوع مغلق.