Какой рейтинг вас больше интересует?
|
Балуемся индикаторами NumLock, CapsLock, ScrollLock на клавиатуре!2012-10-23 12:55:33 (читать в оригинале)
Данный пример реализует последовательное загорание и затухание индикаторов NumLock, CapsLock, ScrollLock на клавиатуре. Также его можно использовать для реализации управления включения и отключения режимов NumLock, CapsLock, ScrollLock. Для работы нам понадобится подключить пространство имен: using System.Runtime.InteropServices; using System.Threading;И добавить компонент таймер со свойствами: Enabled: True Interval: 1000 Теперь переходим к коду: private const byte VK_SCROLL = 0x91; private const byte VK_NUMLOCK = 0x90; private const byte VK_CAPITAL = 0x14; private const uint KEYEVENTF_KEYUP = 0x2; [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo); [DllImport("user32.dll", EntryPoint = "GetKeyState", SetLastError = true)] static extern short GetKeyState(uint nVirtKey); //Scroll------------------------------------------------------- public static void SetScrollLockKey(bool newState) { bool scrollLockSet = GetKeyState(VK_SCROLL) != 0; if (scrollLockSet != newState) { keybd_event(VK_SCROLL, 0, 0, 0); keybd_event(VK_SCROLL, 0, KEYEVENTF_KEYUP, 0); } } public static bool GetScrollLockState() { return GetKeyState(VK_SCROLL) != 0; } //NUM------------------------------------------------------- public static void SetNumLockKey(bool newState) { bool scrollLockSet = GetKeyState(VK_NUMLOCK) != 0; if (scrollLockSet != newState) { keybd_event(VK_NUMLOCK, 0, 0, 0); keybd_event(VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0); } } public static bool GetNumLockState() { return GetKeyState(VK_NUMLOCK) != 0; } //Caps------------------------------------------------------- public static void SetCapsLockKey(bool newState) { bool scrollLockSet = GetKeyState(VK_NUMLOCK) != 0; if (scrollLockSet != newState) { keybd_event(VK_CAPITAL, 0, 0, 0); keybd_event(VK_CAPITAL, 0, KEYEVENTF_KEYUP, 0); } } public static bool GetCapsLockState() { return GetKeyState(VK_CAPITAL) != 0; }Для реализации поочередного включения/выключения в таймер вставляете вот этот код: SetNumLockKey(true); Thread.Sleep(100); SetNumLockKey(false); Thread.Sleep(100); SetCapsLockKey(true); Thread.Sleep(100); SetCapsLockKey(false); Thread.Sleep(100); SetScrollLockKey(true); Thread.Sleep(100); SetScrollLockKey(false); Thread.Sleep(100);Вы так же можете пользоваться этими функциями по отдельности в случае если что-то необходимо включить: SetNumLockKey(true);или выключить! SetNumLockKey(false);
|
Категория «Новости»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.