求VB用向其他程序发送键值的方法!

举例说明就像做一个VB得程序给QQ登陆器输入QQ号那样!急需谢谢!20分呵呵希望大家帮忙!能给个例子么!可以是源代码!要VB6.0的!SENDKEY怎么能给其他程序发送键... 举例说明就像做一个VB得程序给QQ登陆器输入QQ号那样!
急需谢谢!20分呵呵希望大家帮忙!
能给个例子么!可以是源代码!要VB6.0的!SENDKEY怎么能给其他程序发送键值!小弟愚笨请各位大侠讲解一下!
如果给其他程序发送键值要先取得句柄么!希望关注!
展开
 我来答
孤独刈麦
2010-01-21 · TA获得超过529个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:151万
展开全部
SendKeys 语句

将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。

语法

SendKeys string[, wait]

SendKeys 语句的语法具有以下几个命名参数:

部分 描述
string 必需的。字符串表达式,指定要发送的按键消息。
Wait 可选的。指定等待方式的 BooleandefBooleanDataType@veendf98.chm 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。

说明

每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。

对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。

为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码:

按键 代码
BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} 或 {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}或 ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} 或 {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:

按键 代码
SHIFT +
CTRL ^
ALT %

为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。

为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTSC} 发送到任何应用程序。

参考资料:MSDN
sunshinebean
2010-01-22 · TA获得超过304个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:277万
展开全部
这个简单的,是要求获得控件的句柄才能发送按键消息

我具体不知道你要发什么按键消息,就分别用sendmessage和postmessage来给你写个例子!2009QQ采用的自绘控件技术就连SPY+都找不到其控件。。

你自己添加2个按钮就行了我以记事本为例:
Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Const WM_SETTEXT = &HC '设置文本的消息
Const VK_F5 = &H74 '发送F5的消息
Const WM_KEYDOWN = &H100 '发送KEYDOWN事件的消息
Dim h1 As Long 'h1是TXT窗口的句柄
Dim h2 As Long 'h2是TXT文本编辑区域的句柄

Private Sub Command1_Click()
SendMessage h2, WM_SETTEXT, 0, ByVal CStr("哈哈")
End Sub

Private Sub Command2_Click()
PostMessage h2, WM_KEYDOWN, VK_F5, 0&
End Sub

Private Sub Form_Load()
Shell "notepad.exe"
h1 = FindWindow(vbNullString, "无标题 - 记事本") 'vbNullString 是类名,"无标题 - 记事本" 是窗体名
h2 = FindWindowEx(h1, 0&, "edit", vbNullString) '父窗口句柄 子窗口句柄,如果为NULL就从第一个开始找(0& 表示无) 类名 窗体名
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰麟轻武
2010-01-21 · TA获得超过603个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:296万
展开全部
发送按键的方式有很多
比如
PostMessage 或 keybd_event 是利用API
SendKeys 是系统内建语句

但是都是发送的虚拟按键码
有很多软件是不接受虚拟按键码的

最常见的就是ctrl + alt +del
这个按键组合就是不接受虚拟按键码的
你无论用以上那种方式模拟这个组合键都是无效的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
excel林林总总
2010-01-21
知道答主
回答量:27
采纳率:0%
帮助的人:24.9万
展开全部
先是findwindow 再 sendmessage,不过现在QQ2009和2008的结构有了极大的变化...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微本小智
2010-01-21 · 财务会计、管理会计等作品
微本小智
采纳数:89 获赞数:140

向TA提问 私信TA
展开全部
Sendkey
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式