以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求打开关闭小键盘的命令(数字键、大写键)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53422)

--  作者:9EQ98
--  发布时间:2014/7/7 17:00:00
--  求打开关闭小键盘的命令(数字键、大写键)
如果控制打开和关闭小键盘(数字键、大写键)
[此贴子已经被作者于2014-7-26 14:22:19编辑过]

--  作者:Bin
--  发布时间:2014/7/7 17:02:00
--  
参考图片点击可在新窗口打开查看http://www.dotblogs.com.tw/PowerHammer/archive/2008/03/24/2156.aspx 

--  作者:9EQ98
--  发布时间:2014/7/15 15:03:00
--  

能提供一下FoxTable的代码吗?非常感谢!


--  作者:Bin
--  发布时间:2014/7/15 15:07:00
--  
里面就是狐表代码,通用. 前面放到全局代码就好.参考着做.
--  作者:有点甜
--  发布时间:2014/7/15 15:11:00
--  

 全局代码

 

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Integer, ByVal wMapType As Integer) As Integer

Public Const VK_NUMLOCK = &H90 \' Num Lock

Public Const KEYEVENTF_KEYDOWN = &H0 \' KeyDown

Public Const KEYEVENTF_KEYUP = &H2 \' KeyUp

 

 触发代码

 

Dim intScanCode As Integer = MapVirtualKey(VK_NUMLOCK, 0)

keybd_event(VK_NUMLOCK, intScanCode, KEYEVENTF_KEYDOWN, 0) \' 按下

keybd_event(VK_NUMLOCK, intScanCode, KEYEVENTF_KEYUP, 0) \' 放

[此贴子已经被作者于2014-7-15 15:12:13编辑过]

--  作者:9EQ98
--  发布时间:2014/7/26 8:38:00
--  

请问怎样识别当前的数字键盘 是打开的还是关闭的呢?


--  作者:9EQ98
--  发布时间:2014/7/26 13:56:00
--  
If My.Computer.Keyboard.NumLock Then
    output.show("[Num Lock] ON")
Else
    output.show("[Num Lock] OFF")
End If

--  作者:9EQ98
--  发布时间:2014/7/26 14:21:00
--  

\' 全局代码
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Integer, ByVal wMapType As Integer) As Integer

Public Const VK_CAPITAL = &H14 \' Caps Lock键代码
Public Const VK_NUMLOCK = &H90 \' Num Lock键代码
Public Const VK_SCROLL  = &H91 \' Scroll Lock键代码
Public Const KEYEVENTF_KEYDOWN = &H0 \' KeyDown
Public Const KEYEVENTF_KEYUP = &H2 \' KeyUp

\' 命令窗口

Dim intScanCode_NUMLOCK As Integer = MapVirtualKey(VK_NUMLOCK, 0)
keybd_event(VK_NUMLOCK, intScanCode_NUMLOCK, KEYEVENTF_KEYDOWN, 0) \' 按下
keybd_event(VK_NUMLOCK, intScanCode_NUMLOCK, KEYEVENTF_KEYUP, 0) \' 放

\' 返回当前数字键(NumLock)状态
If My.Computer.Keyboard.NumLock Then  \'返回按键枚举
    output.show("[Num Lock] ON")
Else
    output.show("[Num Lock] OFF")
End If


Dim intScanCode_CAPITAL As Integer = MapVirtualKey(VK_CAPITAL, 0)
keybd_event(VK_CAPITAL, intScanCode_CAPITAL, KEYEVENTF_KEYDOWN, 0) \' 按下
keybd_event(VK_CAPITAL, intScanCode_CAPITAL, KEYEVENTF_KEYUP, 0) \' 放
\' 返回当前大写键(CapsLock)状态
If My.Computer.Keyboard.CapsLock Then  \'返回按键枚举
    output.show("[Caps Lock] ON")
Else
    output.show("[Caps Lock] OFF")
End If


--  作者:lsy
--  发布时间:2014/7/26 18:11:00
--  
举一反三,不错。