目前按键读取的软件只存在朗读出来的功能,如WIN系统自带的“讲述人”,但按一下就出现字的还真找不到,不过你可以这样,你使用的即时通讯工具能截图吧?你打开系统自带的,屏幕键盘(在开始→附件→辅助工具→屏幕键盘),把你要发送的案件信息截图,再发过去,就行了。
打出来的方法:英文字母你自己学会拼,+你也会打,箭头是这么打的,用智能ABC打字,按V1,就会出现箭头了.
希望你满意,O(∩_∩)O~
MFC有没有哪几个函数结合起来能做到给一个窗口发键盘消息?比如说向一个窗口发送Ctrl+V?
首先用findwindow去找到要发送的串口句柄,然后用sendmessage发过去,至于ctrl+v对应的字符,使用ascii码22就可以了。更多
但问题是不知道怎么找到扣扣聊天的窗口啊, 别说找子窗口了, 连聊天的那个窗口我都不知道咋找.
看任务管理器里面能不能看出窗口的名字,不行的话找个工具查看子窗口的窗口名
要全自动的, 不要用户搜索的. 有没有一个函数能找到当前焦点所在的顶级窗口, 和控件焦点所在的窗口?
如何向另一个程序中的按钮发送单击消息
先用FindWindow函数找到程序句柄,再用findWindowEx扭句柄,然后调用sendmessage函数发送消息即可
Declare Function SendMessage Lib “user32" Alias “SendMessageA" (ByVal hwnd
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
SendMessage函数的hwnd参数为接收消息的窗口或控件的hwnd句柄。wMsg参数指定具体的消息值。要发送鼠标左键按下和释放的消息,wMsg的取值分别为WM_LBUTTONDOWN和WM_LBUTTONUP,这两个常量定义如下:
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
把这两个消息发送给一个按钮,按钮就会像真的被鼠标左键单击了一样。SendMessage函数中的后两个参数在本例中可以不理,简单置0即可。
还有一点细节需注意。如果连续给按钮发送一对WM_LBUTTONDOWN和WM_LBUTTONUP消息,Windows会来不及进行一些必要的系统操作,这样在视觉上就看不出按钮被按下后又放开的效果,好像按钮没有按动。但按钮的Click事件处理过程被激活执行表明按钮确实被按过。为了达到视觉上的完美效果,我们不妨在WM_LBUTTONDOWN和WM_LBUTTONUP两个消息之间插入一段短短的延时,比如说200毫秒,在这段延时期间,把处理权交给Windows,这样Windows就有时间显示按钮被按下的效果了。插入延时的办法有很多,可以加入一段空循环或利用计时器控件,这里再介绍一个API函数GetTickCount,该函数获取自Windows启动至被调用时所经过的毫秒数。利用这个函数控制延时,不仅精确,而且节省资源。
GetTickCount 函数的接口声明如下:
Declare Function GetTickCount Lib “kernel32" () As Long
====================CODE:
Private eclare Function GetTickCount Lib “kernel32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) 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
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim tWnd As Long, bWnd As Long, ncWnd As Long
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
tWnd = FindWindow("Shell_TrayWnd", vbNullString)
bWnd = FindWindowEx(tWnd, ByVal 0&, "BUTTON", vbNullString)
SendMessage bWnd, WM_LBUTTONDOWN, 0, ByVal O&
GetTickCount
SendMessage bWnd, WM_LBUTTONUP, 0, ByVal O&
End Sub这个例子展示点“开始”按扭
请问VB如何获取某窗体的句柄,并向该窗口发送后台按键信息?
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Private Function GetWinText(ByVal hwnd As Long) As String
GetWinText = String(1024, Chr(0))
GetWindowText hwnd, GetWinText, Len(GetWinText)
GetWinText = Left$(GetWinText, InStr(GetWinText, Chr(0)) - 1)
End Function
Private Sub Command1_Click()
Dim i As Long, j As Long, s As String
i = GetWindow(hwnd, 0&)
Do Until i = 0
If IsWindowVisible(i) Then
s = Trim(GetWinText(i))
If instr(s,"Client Ver :") Then
'这时候i就是该程序的句柄,你可以在此发送按键消息了
'或者你也可以把这个i记录下来,然后在timer中向该窗口定时发送按键消息
exit sub
End If
End If
i = GetWindow(i, 2&)
Loop
End Sub
按键精灵怎么让脚本运行指定的窗口并支持后台
//得到鼠标指向的窗口句柄
Hwnd = Plugin.Window.MousePoint()
//向后台窗口句柄(变量:Hwnd)发送一个键盘(扫描码:65)按键
Call Plugin.Bkgnd.KeyPress(Hwnd, 65)
//向后台窗口句柄(变量:Hwnd)发送一个鼠标移动到客户区域(坐标:0, 0)处
Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
//向后台窗口句柄(变量:Hwnd)的客户区域(坐标:0, 0)处发送一个鼠标右键单击
Call Plugin.Bkgnd.RightClick(Hwnd, 0, 0)
//向后台窗口句柄(变量:Hwnd)发送一个文本消息(内容:"内容")到客户区
Call Plugin.Bkgnd.SendString(Hwnd, "内容")
你把Hwnd 句柄当做一个对象,就像你要发短信需要一个电话号码才能操作一样。然后后面的就好理解了。不懂再问。这些命令都能在按键精灵里面的插件命令-后台命令里找到,祝你好运。更多
能帮我改个脚本么。。。。 改成就在一个窗口运行
要求呢?不要太长的,因为改的部分一般都 一样,如果太长我只能给你大概的样了。
Delay 1000
KeyPress "1", 1
Delay 20000
KeyPress "2", 1
Delay 2000
KeyPress "2", 1
Delay 2000
KeyPress "3", 1
Delay 1500
KeyPress "4", 1
Delay 10000
KeyPress "1", 1
Delay 10000
KeyPress "2", 1
Delay 2000
KeyPress "2", 1
Delay 2000
KeyPress "3", 1
Delay 1500
KeyPress "4", 1
Delay 10000
不长把。。。
Hwnd = Plugin.Window.MousePoint()
Delay 1000
//向后台窗口句柄(变量:Hwnd)发送一个键盘(扫描码:49)按键
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)//键盘1按键码为49,2为50,3为51,4为52
接下来你自己写。
易语言 取某窗口句柄后然后后台对这个窗口后台模拟按键
按键消息(句柄,#F1)
.版本 2
.程序集 窗口程序集1
.程序集变量 eb5ht, 整数型
.程序集变量 hetrthb6y5j, 整数型
.子程序 按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值)
.参数 窗口句柄, 整数型, , 接收消息的窗口句柄
.参数 键代码, 整数型, , 按键的键代码
.参数 状态, 整数型, 可空, 可空:按键(3+4) 1 #按键_ 2 功能键方式(按下+放开) 3 #按下_ 4 #放开_
eb5ht = 键代码
hetrthb6y5j = 状态
按键消息处理 (窗口句柄)
.子程序 按键消息处理, 逻辑型
.参数 hwnd, 整数型
.如果真 (hwnd ≠ 0)
.判断开始 (hetrthb6y5j = 1)
_投递消息 (hwnd, 258, eb5ht, 0)
.判断 (hetrthb6y5j = 2)
_投递消息 (hwnd, 260, eb5ht, 0)
_投递消息 (hwnd, 261, eb5ht, 0)
.判断 (hetrthb6y5j = 3)
_投递消息 (hwnd, 256, eb5ht, 0)
.判断 (hetrthb6y5j = 4)
_投递消息 (hwnd, 257, eb5ht, 0)
.默认
_投递消息 (hwnd, 256, eb5ht, 0)
_投递消息 (hwnd, 257, eb5ht, 0)
.判断结束
返回 (真)
.如果真结束
返回 (假)
.版本 2
.DLL命令 _投递消息, , , "PostMessageA", 公开, 向指定窗口句柄发送消息
.参数 h
.参数 m
.参数 p
.参数 p
按键精灵怎么同时对多个窗口发送命令 而且是后台的 如果可以的话 希望有人能给做个 同时对多个窗口按1就行
Hwnd = Plugin.Window.MousePoint()
Rem a
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)
Goto a
脚本循环次数设置成1次,然后先把鼠标移动到需要运行脚本的窗口上,再启动脚本
以上是无限循环的脚本,如果你想设置成运行固定次数,请把
Rem a
Goto a
改成
For 运行次数
Next
多个窗口的话,把脚本复制成多份,然后分别设置不同的快捷键。
搜狗输入法如果要使用回车键发送消息请问怎么弄?
QQ: 进入QQ设置,辅助功能,打开回车键发送消息。
微信:进入微信设置,聊天,打开回车键发送消息。
转载请注明出处51数据库 » 向窗口发送按键消息软件 如何向目标窗口发送按键消息