java按键修改_修改键位映射,打造自己的个性键盘 [转自赵翔鹏的Blog]

摘要:

修改注册表,定义键位映射,不仅可以交换某几个键位的位置,还可以增强键盘的功能,比如把右alt键、右win键等设置为调整音量大小等。

实在受不了在latex中反复的按\键,右手的负担太重了,所以我就把capslock键换成了\,又把右侧的win键换成了capslock。方法是定义scancode的mapping,重定义这两个键的scancode。

正文:

打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout,新建Scancode Map键,类型为二进制值。在输入键值之前,先在纸上把整个数据按次序写一下:

00000000  header version (zero)  必须为0

00000000  header flags (zero)  必须为0

00000003  number of entries (including terminator)  映射个数加1

003A002B  map CAPSLOCK (0x3A) to \  一个映射

E05C003A  RWin to capslock 另一个映射

00000000  null terminator map  必须为0

每个映射中,前半部分是原先按键的scancode,后半是要改成的scancode。所有按键的scancode在最后的表中列出。

注意不能直接输入上面的值。注册表中,二进制值要把每个字节高低位重新排一下,如:

00000000 00000000 03000000 2B003A00 3A005CE0 00000000

再输入。输入之后看起来是这样:

20041128101954547.GIF

最后重启机器就可以了

face8.gif

可以定义别的映射,比如把右alt(E038)设为静音(E020)等。要注意修改第3个字节中的映射个数值。

最后,我还想把[]和{}互换,但这不能用这种方法来做,估计必须修改kbdus.dll,定义自己的语言才行。还没找到怎么改kbdus.dll的方法……

Update:

终于找到了修改键位的软件!KEYBOARD LAYOUT MANAGER,主页是

http://www.klm.freeservers.com

我下的是medium版,现在可以修改[]和{}了:)

这是共享软件,但它的原理不过是是生成新的kbdus.dll而已,我想只要把\windows\system32\kbdus.dll拷出来做个备份就可以了吧。

附:scancode表(注意我们只需用到MAKE code)

MAKE code - code generated when key is pressed.

BREAK code - code generated when key is released.

Keyboard Scan Codes Set 1

KEY Name

Define Value (decimal)

Label

Additional Label

MAKE (hex)

BREAK (hex)

Escape

1

Esc

0x01

0x81

1

2

1

!

0x02

0x82

2

3

2

@

0x03

0x83

3

4

3

#

0x04

0x84

4

5

4

$

0x05

0x85

5

6

5

%

0x06

0x86

6

7

6

^

0x07

0x87

7

8

7

&

0x08

0x88

8

9

8

*

0x09

0x89

9

10

9

(

0x0A

0x8A

0

11

0

)

0x0B

0x8B

Minus

12

-

_

0x0C

0x8C

Equal

13

=

+

0x0D

0x8D

BackSpace

14

BackSpace

0x0E

0x8E

Tab

15

Tab

0x0F

0x8F

Q

16

Q

0x10

0x90

W

17

W

0x11

0x91

E

18

E

0x12

0x92

R

19

R

0x13

0x93

T

20

T

0x14

0x94

Y

21

Y

0x15

0x95

U

22

U

0x16

0x96

I

23

I

0x17

0x97

O

24

O

0x18

0x98

P

25

P

0x19

0x99

LBrace

26

[

{

0x1A

0x9A

RBrace

27

]

}

0x1B

0x9B

Enter

28

Enter

0x1C

0x9C

LCtrl

29

Ctrl (left)

0x1D

0x9D

A

30

A

0x1E

0x9E

S

31

S

0x1F

0x9F

D

32

D

0x20

0xA0

F

33

F

0x21

0xA1

G

34

G

0x22

0xA2

H

35

H

0x23

0xA3

J

36

J

0x24

0xA4

K

37

K

0x25

0xA5

L

38

L

0x26

0xA6

SemiColon

39

;

:

0x27

0xA7

Quote

40

'

"

0x28

0xA8

Tilde

41

`

~

0x29

0xA9

LShift

42

Shift (left)

0x2A

0xAA

BackSlash

43

\

|

0x2B

0xAB

Z

44

Z

0x2C

0xAC

X

45

X

0x2D

0xAD

C

46

C

0x2E

0xAE

V

47

V

0x2F

0xAF

B

48

B

0x30

0xB0

N

49

N

0x31

0xB1

M

50

M

0x32

0xB2

Comma

51

,

<

0x33

0xB3

Period

52

.

>

0x34

0xB4

Slash

53

/

?

0x35

0xB5

RShift

54

Shift (right)

0x36

0xB6

KP_Multiply

55

*

0x37

0xB7

LAlt

56

Alt (left)

0x38

0xB8

Space

57

SpaceBar

0x39

0xB9

CapsLock

58

CapsLock

0x3A

0xBA

F1

59

F1

0x3B

0xBB

F2

60

F2

0x3C

0xBC

F3

61

F3

0x3D

0xBD

F4

62

F4

0x3E

0xBE

F5

63

F5

0x3F

0xBF

F6

64

F6

0x40

0xC0

F7

65

F7

0x41

0xC1

F8

66

F8

0x42

0xC2

F9

67

F9

0x43

0xC3

F10

68

F10

0x44

0xC4

NumLock

69

NumLock

0x45

0xC5

ScrollLock

70

Scroll Lock

0x46

0xC6

KP_7

71

7

Home

0x47

0xC7

KP_8

72

8

ArrowU

0x48

0xC8

KP_9

73

9

PgUp

0x49

0xC9

KP_Minus

74

-

0x4A

0xCA

KP_4

75

4

ArrowL

0x4B

0xCB

KP_5

76

5

0x4C

0xCC

KP_6

77

6

ArrowR

0x4D

0xCD

KP_Plus

78

+

0x4E

0xCE

KP_1

79

1

End

0x4F

0xCF

KP_2

80

2

ArrowD

0x50

0xD0

KP_3

81

3

PgDn

0x51

0xD1

KP_0

82

0

Ins

0x52

0xD2

KP_Decimal

83

.

Del

0x53

0xD3

F11

84

F11

0x57

0xD7

F12

85

F12

0x58

0xD8

PrintScreen

86

Print Screen

SysRq

0xE0 0x2A 0xE0 0x37

0xE0 0xB7 0xE0 0xAA

Pause

87

Pause

Break

0xE1 0x1D 0x45 0xE1 0x9D 0xC5

-NONE-

KP_Enter

88

Enter

0xE0 0x1C

0xE0 0x9C

RCtrl

89

Ctrl (right)

0xE0 0x1D

0xE0 0x9D

KP_Slash

90

/

0xE0 0x35

0xE0 0xB5

RAlt

91

Alt (right)

0xE0 0x38

0xE0 0xB8

Home

92

Home

0xE0 0x47

0xE0 0xC7

ArrowU

93

ArrowU

0xE0 0x48

0xE0 0xC8

PageUp

94

Page Up

0xE0 0x49

0xE0 0xC9

ArrowL

95

ArrowL

0xE0 0x4B

0xE0 0xCB

ArrowR

96

ArrowR

0xE0 0x4D

0xE0 0xCD

End

97

End

0xE0 0x4F

0xE0 0xCF

ArrowD

98

ArrowD

0xE0 0x50

0xE0 0xD0

PageDown

99

Page Down

0xE0 0x51

0xE0 0xD1

Insert

100

Insert

0xE0 0x52

0xE0 0xD2

Delete

101

Delete

0xE0 0x53

0xE0 0xD3

LWin

102

LWin

0xE0 0x5B

0xE0 0xDB

RWin

103

RWin

0xE0 0x5C

0xE0 0xDC

Menu

104

Menu

0xE0 0x5D

0xE0 0xDD

Power

105

Power

0xE0 0x5E

0xE0 0xDE

Sleep

106

Sleep

0xE0 0x5F

0xE0 0xDF

Wake

107

Wake

0xE0 0x63

0xE0 0xE3

NextTrack

108

Next Track

0xE0 0x19

0xE0 0x99

PreviousTrack

109

Previous Track

0xE0 0x10

0xE0 0x90

Stop

110

Stop

0xE0 0x24

0xE0 0xA4

Play_Pause

111

Play_Pause

0xE0 0x22

0xE0 0xA2

Mute

112

Mute

0xE0 0x20

0xE0 0xA0

VolumeUp

113

Volume Up

0xE0 0x30

0xE0 0xB0

VolumeDown

114

Volume Down

0xE0 0x2E

0xE0 0xAE

MediaSelect

115

Media

0xE0 0x6D

0xE0 0xED

EMail

116

E-Mail

0xE0 0x6C

0xE0 0xEC

Calculator

117

Calculator

0xE0 0x21

0xE0 0xA1

MyComputer

118

My Computer

0xE0 0x6B

0xE0 0xEB

WWWSearch

119

WWW Search

0xE0 0x65

0xE0 0xE5

WWWHome

120

WWW Home

0xE0 0x32

0xE0 0xB2

WWWBack

121

WWW Back

0xE0 0x6A

0xE0 0xEA

WWWForward

122

WWW Forward

0xE0 0x69

0xE0 0xE9

WWWStop

123

WWW Stop

0xE0 0x68

0xE0 0xE8

WWWRefresh

124

WWW Refrash

0xE0 0x67

0xE0 0xE7

WWWFavorites

125

WWW Favorites

0xE0 0x66

0xE0 0xE6

posted on 2007-09-11 21:12 backup2007 阅读(5917) 评论(1)  编辑  收藏 所属分类: 日常应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值