Домой Keyboard Игра с индикаторами NumLock, CapsLock, ScrollLock.: Справочник по C#

Игра с индикаторами NumLock, CapsLock, ScrollLock.: Справочник по C#

629
0


      Данный пример реализует последовательное загорание и затухание индикаторов NumLock, CapsLock, ScrollLock на клавиатуре. Также его можно использовать для реализации управления включения и отключения режимов NumLock, CapsLock, ScrollLock.Создайте проект Windows Form в Microsoft Visual Studio. Добавьте компонент Timer на вашу главную форму. Перейдите в свойства компонента и выставьте следующие параметры:
Enabled: True
Interval: 1000
Для работы проекта вам понадобится подключить пространство имен:

using System.Runtime.InteropServices;
using System.Threading;

Сделайте двойной клик по компоненту Timer и перейдите в автоматически созданный метод timer1_Tick, добавьте в него следующий листинг:

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);

Теперь переходим к основному коду, добавьте следующий листинг в код главной формы:

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;
}

Запустите ваш проект, нажав на клавиатуре клавишу «F5» и посмотрите на индикаторы. Вы так же можете пользоваться этими функциями по отдельности:

SetNumLockKey(true);

или выключить!

SetNumLockKey(false);

Ссылки для скачивания: Rusfolder.netDepositFilesTurbobit.netLetitbit.net

ЧИТАТЬ ТАКЖЕ:  Количество потоков в вашем приложении: Справочник по C#

Игра с индикаторами NumLock, CapsLock, ScrollLock.: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь