好久沒寫Blog了,最近剛好有此需求,就是如何判斷User端的電腦是否有打開Caps Lock鍵
如果有打開Caps Lock鍵,再用程式關閉它
google一下,找到一篇文章,有介紹到,隨便記錄一下
有兩種方法來判斷是否有打關Caps Lock鍵
1.Control.IsKeyLocked(Keys.CapsLock)
2.Console.CapsLock
Winform(c#)
using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WinFormCSharp { public partial class Form1 : Form { [DllImport("user32.dll")] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); const int KEYEVENTF_EXTENDEDKEY = 0x1; const int KEYEVENTF_KEYUP = 0x2; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //if (Control.IsKeyLocked(Keys.CapsLock))//表示Caps Lock 鍵打開,方法1 if (Console.CapsLock)//表示Caps Lock 鍵打開,方法2 { MessageBox.Show("Caps Lock 鍵打開,將關閉它"); keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0); keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0); } else//表示Caps Lock 鍵關閉 { MessageBox.Show("Caps Lock 鍵關閉"); } } } }
執行結果(有打開Caps Lock鍵):
參考網址:http://cboard.cprogramming.com/csharp-programming/105103-how-detect-capslock-csharp.htmlhttp://msdn.microsoft.com/zh-tw/library/system.console.capslock%28VS.80%29.aspx