怎么在数据窗口中用左箭头实现shift+tab

subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library 'user32.dll'

定义用户事件keydown:PBm_dwnkey。
在事件中编程:

integer VK_TAB = 09
integer VK_SHIFT = 16

if key = KeyLeftArrow! then
    keybd_event(VK_SHIFT,0,0,0) //按下shift
    keybd_event(VK_TAB,0,0,0) //按下tab
    keybd_event(VK_TAB,0,2,0) //释放tab
    keybd_event(VK_SHIFT,0,2,0) //释放shift
    return 1
end if

if key = KeyRightArrow! then
    keybd_event(VK_TAB,0,0,0) //按下tab
    keybd_event(VK_TAB,0,2,0) //释放tab
    return 1
end if

此题由摆渡人工作室站长ferryman回答

kukoc 再提供另一种解决方法(比较原始,但也能实现):
function boolean GetKeyboardState (ref char kbarray[256]) library "user32.dll"
function boolean SetKeyboardState (ref char kbarray[256]) library "user32.dll"

//脚本:用户事件keydown:PBm_dwnkey

char lc_kb[256]
if key = KeyLeftArrow! then
    GetKeyboardState (lc_kb)
    lc_kb[17] = Char (128)

  SetKeyboardState (lc_kb)
    Send (Handle (this), 256, 9, 0)
    GetKeyboardState (lc_kb)
    lc_kb[17] = Char (0)
    SetKeyboardState (lc_kb)
end if

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值