📄 form1.frm
字号:
Begin VB.CommandButton 大写锁
BackColor = &H00D9A16F&
Caption = "大写锁定"
Height = 800
Left = 0
MouseIcon = "Form1.frx":3C13A
MousePointer = 99 'Custom
Style = 1 'Graphical
TabIndex = 4
ToolTipText = "Capital Lock"
Top = 1605
Width = 1235
End
Begin VB.CommandButton 换档
BackColor = &H00D9A16F&
Caption = "换档"
Height = 800
Index = 160
Left = 0
MouseIcon = "Form1.frx":3CA04
MousePointer = 99 'Custom
Style = 1 'Graphical
TabIndex = 3
ToolTipText = "Shift"
Top = 2400
Width = 1425
End
Begin VB.CommandButton 控制
BackColor = &H00D9A16F&
Caption = "控制"
Height = 800
Index = 162
Left = 0
MouseIcon = "Form1.frx":3D2CE
MousePointer = 99 'Custom
Style = 1 'Graphical
TabIndex = 2
ToolTipText = "Control"
Top = 3210
Width = 1058
End
Begin VB.CommandButton 转换
BackColor = &H00D9A16F&
Caption = "转换"
Height = 800
Index = 164
Left = 1980
MouseIcon = "Form1.frx":3DB98
MousePointer = 99 'Custom
Style = 1 'Graphical
TabIndex = 1
ToolTipText = "Alter"
Top = 3210
Width = 882
End
Begin VB.CommandButton 徽标
BackColor = &H00D9A16F&
Caption = "徽标"
Height = 800
Index = 91
Left = 1087
MouseIcon = "Form1.frx":3E462
MousePointer = 99 'Custom
Style = 1 'Graphical
TabIndex = 0
ToolTipText = "Windows 徽标"
Top = 3210
Width = 882
End
Begin VB.Label 大写灯
Alignment = 2 'Center
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "●"
ForeColor = &H00FFC0C0&
Height = 180
Left = 10200
TabIndex = 51
Top = 3390
Width = 180
End
Begin VB.Label Label2
Alignment = 2 'Center
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "大写灯"
ForeColor = &H00FF8080&
Height = 180
Left = 10020
TabIndex = 50
Top = 3570
Width = 540
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Rem 转移输入焦点的声明
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Rem 窗口置顶的声明
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Rem 移动没有标题栏窗体的声明
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Rem 模拟按键声明
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_CAPITAL = &H14
Rem 禁止本窗体拥有输入焦点的常数
Private Const HWND_NOTOPMOST = -2
Private Const WS_DISABLED = &H8000000
Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Rem 窗口置顶的常数
Private Const HWND_TOPMOST = -1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_SHOWWINDOW = &H40
Rem 移动没有标题栏窗体的常数
Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1
Rem 模拟按钮常数
Private Const KEYEVENTF_KEYUP = &H2
Rem 以下是程序执行主体部分
Rem 窗体调用时置顶,且禁止拥有输入焦点
Private Sub Form_Load()
Me.Show
小写字母
下档符号
SKB(8).Caption = "退格" & Chr(10) & "←"
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_DISABLED
End Sub
Rem 鼠标移动到窗体上时,窗体置顶
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
Rem 移动没有标题栏窗体,弹出快捷菜单
Rem 窗体重现时,设置其位置在屏幕中下方且置顶
Private Sub Form_Paint()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
Me.Left = Screen.Width / 2 - Me.Width / 2
Me.Top = Screen.Height - Me.Height - 450
End Sub
Rem 防止执行多次
Private Sub Form_Initialize()
Dim KeyboardBuffer(256) As Byte
GetKeyboardState KeyboardBuffer(0)
If KeyboardBuffer(VK_CAPITAL) = 1 Then
大写锁.BackColor = &HFF00&
大写灯.ForeColor = &HFF00&
End If
If App.PrevInstance Then End
End Sub
Rem 弹出式快捷菜单项
Private Sub MnuAbout_Click()
MsgBox "1.气球提示:鼠标指针指向某个键,停留片该,将会显示该键的英文全称或中文全称。" _
& Chr(10) & "2.指法提示:鼠标指针的形状在每个键上都根据相应指法发生变化。" _
& Chr(10) & "3.高亮提示:按下某个键时,该键会变得高亮;如果按下的是开关键,相应的指示灯也会变得高亮。" _
& Chr(10) & "4.换档提示:当按下 Caps Lock 、Shift 、Num Lock 键时,相应的,大写字母、上档符号、小键盘数字会突出显示;" _
& "反之, 当弹起 Caps Lock 、Shift 、Num Lock 键时,相应的,小写字母、下档符号、小键盘光标键会突出显示。" _
& Chr(10) & "5.随手移动:在键盘背景处用鼠标拖动,可移动键盘。", , "关于仿 Microsoft 屏幕键盘"
End Sub
Private Sub MnuAuthor_Click()
MsgBox "作者:蔡德玉" _
& Chr(10) & "邮箱:cai_1001@163.com" _
& Chr(10) & "地址:河南省焦作市万方铝业股份有限公司", , "作者信息"
End Sub
Private Sub MnuProgramme_Click()
MsgBox "Microsoft(C) Visual Basic(R) 6.0", , "编程语言"
End Sub
Private Sub MnuEdition_Click()
MsgBox "仿 Microsoft 屏幕键盘" & Chr(10) & "版本:1.0.5.0" & Chr(10) & "2008年08月30日13时14分15秒", , "版本信息"
End Sub
Rem 用控件数组向外部窗口发送按键信息
Private Sub SKB_Click(Index As Integer)
keybd_event Index, 0, 0, 0
keybd_event Index, 0, KEYEVENTF_KEYUP, 0
End Sub
Rem 获得焦点键高亮
Private Sub SKB_GotFocus(Index As Integer)
SKB(Index).BackColor = &HFFE0&
End Sub
Private Sub SKB_LostFocus(Index As Integer)
'SKB(Index).BackColor = vbWhite
SKB(Index).BackColor = &HC0FFC0
End Sub
Rem 三个控制键盘灯的键
Private Sub 大写锁_Click()
If 大写锁.BackColor = &HD9A16F Then
大写锁.BackColor = &HFF00&
大写灯.ForeColor = &HFF00&
keybd_event 20, 0, 0, 0
keybd_event 20, 0, KEYEVENTF_KEYUP, 0
If 换档(160).BackColor = &HFFE0& Then
小写字母
Else
大写字母
End If
Else
大写锁.BackColor = &HD9A16F
大写灯.ForeColor = &HD9A16F
keybd_event 20, 0, 0, 0
keybd_event 20, 0, KEYEVENTF_KEYUP, 0
If 换档(160).BackColor = &HFFE0& Then
大写字母
Else
小写字母
End If
End If
End Sub
Rem 四组成对的特殊键
Private Sub 控制_Click(Index As Integer)
If 控制(Index).BackColor = &HD9A16F Then
控制(Index).BackColor = &HFFE0&
keybd_event Index, 0, 0, 0
Else
控制(Index).BackColor = &HD9A16F
keybd_event Index, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
Private Sub 转换_Click(Index As Integer)
If 转换(Index).BackColor = &HD9A16F Then
转换(Index).BackColor = &HFFE0&
keybd_event Index, 0, 0, 0
Else
转换(Index).BackColor = &HD9A16F
keybd_event Index, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
Private Sub 徽标_Click(Index As Integer)
If 徽标(Index).BackColor = &HD9A16F Then
徽标(Index).BackColor = &HFFE0&
keybd_event Index, 0, 0, 0
Else
徽标(Index).BackColor = &HD9A16F
keybd_event Index, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
Private Sub 换档_Click(Index As Integer)
If 换档(Index).BackColor = &HD9A16F Then
换档(Index).BackColor = &HFFE0&
keybd_event Index, 0, 0, 0
上档符号
If 大写灯.ForeColor = &HFFE0& Then
小写字母
Else
大写字母
End If
Else
换档(Index).BackColor = &HD9A16F
keybd_event Index, 0, KEYEVENTF_KEYUP, 0
下档符号
If 大写灯.ForeColor = &HFFE0& Then
大写字母
Else
小写字母
End If
End If
End Sub
Rem 弹出式快捷菜单键
Private Sub 快捷菜单_Click()
keybd_event 93, 0, 0, 0
keybd_event 93, 0, KEYEVENTF_KEYUP, 0
End Sub
Rem 自定义子函数,使子母键突出显示大写
Sub 大写字母()
SKB(65).Caption = "A" & Chr(10) & "a"
SKB(66).Caption = "B" & Chr(10) & "b"
SKB(67).Caption = "C" & Chr(10) & "c"
SKB(68).Caption = "D" & Chr(10) & "d"
SKB(69).Caption = "E" & Chr(10) & "e"
SKB(70).Caption = "F" & Chr(10) & "f"
SKB(71).Caption = "G" & Chr(10) & "g"
SKB(72).Caption = "H" & Chr(10) & "h"
SKB(73).Caption = "I" & Chr(10) & "i"
SKB(74).Caption = "J" & Chr(10) & "j"
SKB(75).Caption = "K" & Chr(10) & "k"
SKB(76).Caption = "L" & Chr(10) & "l"
SKB(77).Caption = "M" & Chr(10) & "m"
SKB(78).Caption = "N" & Chr(10) & "n"
SKB(79).Caption = "O" & Chr(10) & "o"
SKB(80).Caption = "P" & Chr(10) & "p"
SKB(81).Caption = "Q" & Chr(10) & "q"
SKB(82).Caption = "R" & Chr(10) & "r"
SKB(83).Caption = "S" & Chr(10) & "s"
SKB(84).Caption = "T" & Chr(10) & "t"
SKB(85).Caption = "U" & Chr(10) & "u"
SKB(86).Caption = "V" & Chr(10) & "v"
SKB(87).Caption = "W" & Chr(10) & "w"
SKB(88).Caption = "X" & Chr(10) & "x"
SKB(89).Caption = "Y" & Chr(10) & "y"
SKB(90).Caption = "Z" & Chr(10) & "z"
End Sub
Rem 自定义子函数,使子母键突出显示小写
Sub 小写字母()
SKB(65).Caption = "A" & Chr(10) & "a"
SKB(66).Caption = "B" & Chr(10) & "b"
SKB(67).Caption = "C" & Chr(10) & "c"
SKB(68).Caption = "D" & Chr(10) & "d"
SKB(69).Caption = "E" & Chr(10) & "e"
SKB(70).Caption = "F" & Chr(10) & "f"
SKB(71).Caption = "G" & Chr(10) & "g"
SKB(72).Caption = "H" & Chr(10) & "h"
SKB(73).Caption = "I" & Chr(10) & "i"
SKB(74).Caption = "J" & Chr(10) & "j"
SKB(75).Caption = "K" & Chr(10) & "k"
SKB(76).Caption = "L" & Chr(10) & "l"
SKB(77).Caption = "M" & Chr(10) & "m"
SKB(78).Caption = "N" & Chr(10) & "n"
SKB(79).Caption = "O" & Chr(10) & "o"
SKB(80).Caption = "P" & Chr(10) & "p"
SKB(81).Caption = "Q" & Chr(10) & "q"
SKB(82).Caption = "R" & Chr(10) & "r"
SKB(83).Caption = "S" & Chr(10) & "s"
SKB(84).Caption = "T" & Chr(10) & "t"
SKB(85).Caption = "U" & Chr(10) & "u"
SKB(86).Caption = "V" & Chr(10) & "v"
SKB(87).Caption = "W" & Chr(10) & "w"
SKB(88).Caption = "X" & Chr(10) & "x"
SKB(89).Caption = "Y" & Chr(10) & "y"
SKB(90).Caption = "Z" & Chr(10) & "z"
End Sub
Rem 自定义子函数,使运算符号突出显示上档
Sub 上档符号()
SKB(48).Caption = ")" & Chr(10) & "0"
SKB(49).Caption = "!" & Chr(10) & "1"
SKB(50).Caption = "@" & Chr(10) & "2"
SKB(51).Caption = "#" & Chr(10) & "3"
SKB(52).Caption = "$" & Chr(10) & "4"
SKB(53).Caption = "%" & Chr(10) & "5"
SKB(54).Caption = "^" & Chr(10) & "6"
SKB(55).Caption = "&" & Chr(10) & "7"
SKB(56).Caption = "*" & Chr(10) & "8"
SKB(57).Caption = "(" & Chr(10) & "9"
SKB(186).Caption = ":" & Chr(10) & ";"
SKB(187).Caption = "+" & Chr(10) & "="
SKB(188).Caption = "<" & Chr(10) & ","
SKB(189).Caption = "___" & Chr(10) & "-"
SKB(190).Caption = ">" & Chr(10) & "."
SKB(191).Caption = "?" & Chr(10) & "/"
SKB(192).Caption = "~" & Chr(10) & "`"
SKB(219).Caption = "{" & Chr(10) & "["
SKB(220).Caption = "|" & Chr(10) & "\"
SKB(221).Caption = "}" & Chr(10) & "]"
SKB(222).Caption = "”" & Chr(10) & "'"
End Sub
Rem 自定义子函数,使运算符号突出显示下档
Sub 下档符号()
SKB(48).Caption = ")" & Chr(10) & "0"
SKB(49).Caption = "!" & Chr(10) & "1"
SKB(50).Caption = "@" & Chr(10) & "2"
SKB(51).Caption = "#" & Chr(10) & "3"
SKB(52).Caption = "$" & Chr(10) & "4"
SKB(53).Caption = "%" & Chr(10) & "5"
SKB(54).Caption = "^" & Chr(10) & "6"
SKB(55).Caption = "&&" & Chr(10) & "7"
SKB(56).Caption = "*" & Chr(10) & "8"
SKB(57).Caption = "(" & Chr(10) & "9"
SKB(186).Caption = ":" & Chr(10) & ";"
SKB(187).Caption = "+" & Chr(10) & "="
SKB(188).Caption = "<" & Chr(10) & ","
SKB(189).Caption = "__" & Chr(10) & "-"
SKB(190).Caption = ">" & Chr(10) & "."
SKB(191).Caption = "?" & Chr(10) & "/"
SKB(192).Caption = "~" & Chr(10) & "`"
SKB(219).Caption = "{" & Chr(10) & "["
SKB(220).Caption = "|" & Chr(10) & "\"
SKB(221).Caption = "}" & Chr(10) & "]"
SKB(222).Caption = "″" & Chr(10) & "'"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -