怎样用api实现 Sendkeys{Tab},Sendkeys{+Tab}??

yylituo 2003-08-23 03:03:25
怎样用api实现
...全文
143 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShaB 2003-09-08
  • 打赏
  • 举报
回复
keybd_event VK_SHIFT, 0, 0&, 0&
keybd_event VK_CONTROL, 0, 0&, 0&
这是发送的组合键啊,再在后面用keybd_event发送一个按键松开的API,就相当于按了组合键后松开咯
yylituo 2003-09-08
  • 打赏
  • 举报
回复
知道了!谢谢各位!!
yylituo 2003-09-05
  • 打赏
  • 举报
回复
有人知道吗?请指教!!
yylituo 2003-08-31
  • 打赏
  • 举报
回复
上面说的好像都是只能发送一个按键,要同时发送Shift键和Tab键,该怎么作????
xwzxwz 2003-08-31
  • 打赏
  • 举报
回复
UP
学习。。。
ClassicWuHao 2003-08-30
  • 打赏
  • 举报
回复
下面是你要的代码,不过不知道你要实现怎样的功能?还有,我查了一下MSDN,它写到2000/XP以上的OS用SendInput替代了keybd_event,SendInput能够控制numlock键,keyby_event不能。
================================================================================
Option Explicit

Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_SHIFT As Long = &H10
Private Const VK_CONTROL As Long = &H11

Private Sub Form_Load()
keybd_event VK_SHIFT, 0, 0&, 0&
keybd_event VK_CONTROL, 0, 0&, 0&
'do sth
keybd_event VK_SHIFT, 0, 2&, 0&
keybd_event VK_CONTROL, 0, 2&, 0&

End Sub
yylituo 2003-08-30
  • 打赏
  • 举报
回复
不是发送一个键啊,是要发送组合键!!
就是怎么调用api实现同时按Shift键和Tab键的效果???
请指教
laker_tmj 2003-08-27
  • 打赏
  • 举报
回复
up learn
boyzhang 2003-08-24
  • 打赏
  • 举报
回复
Sendkeys太菜,用API吧!

'附上老外的例程一段,自己研究吧,很简单的.... :)

Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Clear the form
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub
yylituo 2003-08-24
  • 打赏
  • 举报
回复
关键是要替代 Sendkeys{+Tab} 的效果!
lxcc 2003-08-23
  • 打赏
  • 举报
回复
Private Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
rainstormmaster 2003-08-23
  • 打赏
  • 举报
回复
一个textbox。修改其MultiLine为true,两个按纽

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Const VK_ADD = &H6B
Private Const VK_TAB = &H9

Private Sub Command1_Click()
Text1.SetFocus
keybd_event VK_TAB, 0, 0, 0 ' press tab
keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0 ' release tab
End Sub

Private Sub Command2_Click()
Text1.SetFocus
keybd_event VK_ADD, 0, 0, 0 ' press +
keybd_event VK_ADD, 0, KEYEVENTF_KEYUP, 0 ' release +
keybd_event VK_TAB, 0, 0, 0 ' press tab
keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0 ' release tab
End Sub

Private Sub Form_Load()
Me.Command1.TabStop = False
Me.Command2.TabStop = False
End Sub
yylituo 2003-08-23
  • 打赏
  • 举报
回复
没人知道吗??????

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧