using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.Runtime.InteropServices;
namespace
sn设置键盘大小写
{
public
partial
class
Form1 : Form
{
const
uint
KEYEVENTF_EXTENDEDKEY = 0x1;
const
uint
KEYEVENTF_KEYUP = 0x2;
[DllImport(
"user32.dll"
)]
static
extern
short
GetKeyState(
int
nVirtKey);
[DllImport(
"user32.dll"
)]
static
extern
void
keybd_event(
byte
bVk,
byte
bScan,
uint
dwFlags,
uint
dwExtraInfo);
public
enum
VirtualKeys :
byte
{
VK_NUMLOCK = 0x90,
VK_SCROLL = 0x91,
VK_CAPITAL = 0x14,
VK_A = 62
}
public
Form1()
{
InitializeComponent();
}
public
static
bool
GetState(VirtualKeys Key)
{
return
(GetKeyState((
int
)Key)==1);
}
public
static
void
SetState(VirtualKeys Key,
bool
State)
{
if
(State != GetState(Key))
{
keybd_event((
byte
)Key, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event((
byte
)Key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
}
private
void
btnOpenCAPITAL_Click(
object
sender, EventArgs e)
{
SetState(VirtualKeys.VK_CAPITAL,
true
);
}
private
void
btnCloseCAPITAL_Click(
object
sender, EventArgs e)
{
SetState(VirtualKeys.VK_CAPITAL,
false
);
}
private
void
btnOpenScroll_Click(
object
sender, EventArgs e)
{
SetState(VirtualKeys.VK_SCROLL,
true
);
}
private
void
btnCloseScroll_Click(
object
sender, EventArgs e)
{
SetState(VirtualKeys.VK_SCROLL,
false
);
}
private
void
btnOpenNum_Click(
object
sender, EventArgs e)
{
SetState(VirtualKeys.VK_NUMLOCK,
true
);
}
private
void
btnCloseNum_Click(
object
sender, EventArgs e)
{
SetState(VirtualKeys.VK_NUMLOCK,
false
);
}
}
}