导航:首页 > 编程大全 > 给指定窗口发消息工具

给指定窗口发消息工具

发布时间:2021-03-06 07:40:49

『壹』 如何向另外一个窗体发送点击某一按钮的消息

先用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如何对指定窗口发送按键消息

如果对普通的窗口发送就直接sendkeys,如果对高级一点的窗口发就用KEYBOARD_EVENT这个API函数,如果对回高级游戏窗口发答送按键消息一般就要用到驱动级WINIO模拟按键了,不知道你想用哪种我给一个keyboard_event函数模拟键盘按键的代码吧通用部分声明:Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 窗体部分,也就是按键实现代码:keybd_event vbKeyUp, 0, 0, 0 '按下↑键
keybd_event vbKeyUp, 0, 2, 0 '释放↑键 这里模拟按上下方向键你自己改一下就行了

『叁』 python向指定窗口模拟发送键盘消息

//根据窗口标题找到对应窗口的句柄

[cpp] view plain
HWND hq = FindWindow(NULL, title);
if (hq != NULL)
{
cout << "找到对应窗口";
}
else
{
cout << "没找到对应窗口";
}

//通过句柄向指定窗口发送专模拟键盘按键消属息

[cpp] view plain
SendMessage(hq, WM_KEYDOWN, 'L', 0);

『肆』 怎么用SendMessageA 给指定窗口发送鼠标点击某点消息

不是不支持,而是屏蔽了,游戏禁止程序对游戏进行非法操作,包括修改内存,修改封包,自动按键之类的操作,你可以找找利用winio进行按键操作的模块或者支持库,理论上这个是屏蔽不了,

『伍』 VB sendkey可以向指定窗口发送消息吗如果可以,怎么实现

Private Sub Form_Load()
Dim x
x = Shell("Notepad.exe", vbNormalFocus)
SendKeys "这是一个文本文件的测试程序.", True ' 模拟输入英文字符串
SendKeys "{Enter}{Enter}", True ' 两次回车
waittime (2) ' 延时 2 秒
SendKeys "自动输入文字", True
SendKeys "{Enter}{Enter}", True
waittime (2)
SendKeys "既不是病毒,也不是木马!", True
SendKeys "{Enter}{Enter}", True
waittime (2)
SendKeys "开始退出... 看菜单项{(}F{)}...", True
SendKeys "%", True 'Alt 键激活菜单条
waittime (1)
SendKeys "(F)", True '按字母 "F",选择"文件(F)"菜单
waittime (1)
SendKeys "(X)", True '按字母 "X", 选择"退出(X)"
waittime (2)
SendKeys "(N)", True '弹出一个对话框,询问文件是否存盘,按 "N" 不存盘
End '结束本模拟程序
End Sub
Private Sub waittime(delay As Single)
Dim starttime As Single
starttime = Timer
Do Until (Timer - starttime) > delay
Loop
End Sub

『陆』 VB向指定窗口发送消息

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 Const WM_CHAR = &H102Private Sub Command1_Click()
PostMessage &H290B6C, WM_CHAR, Asc("A"), 0
End Sub

『柒』 sendmessage怎么在易语言中让它找到指定窗口然后发送按键消息而且支持后台的哦谢谢大家帮忙解决解决吧!

发送抄按键消息用这个命令:ndmessage(你要接收消息的窗口句柄,自定义消息,0,0)
而支持后台的话,你用了时钟去循环执行,就已经可以后台了。
关键在于找到指定的窗口,一般窗口所属进程的名称是不变的,那就可以从进程名取出窗口句柄,然后就sendmessage就行了。
值得一提的是这个方法用来对付网络游戏不一定管用,网络游戏开发者有一定的防范措施的!
你可以用来对付系统记事本测试一下程序是否有效

『捌』 VB 用SendMessage向指定窗口发送消息,发送哪个消息可以改变窗体的类型

'这个程序运行的效果是,单击一下窗体,变成无标题栏,再次单击,又变有标题栏。
'刚才试验过,把Me.Hwnd改成windows计算器的句柄,就可以随意改变计算器的窗体类型

'设置窗体结构信息函数
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'获取窗体结构信息函数
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
Private Const WS_CAPTION = &HC00000
Private Const WS_SIZEBOX = &H40000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
'为窗体指定一个新位置和状态函数
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_NOZORDER = &H4
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_NOREPOSITION = &H200
'获得整个窗体的大小和位置
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Change As Boolean
Private Sub Form_Click()
Dim lStyle As Long
Dim MyRect As RECT
'获取窗体的大小和位置
GetWindowRect Me.hwnd, MyRect
'取得当前窗体信息
lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
If Change Then
'分别使系统菜单(包括图标)、标题、大小、最大化、最小化显示/有效
lStyle = lStyle Or WS_SYSMENU
lStyle = lStyle Or WS_CAPTION
lStyle = lStyle Or WS_SIZEBOX
lStyle = lStyle Or WS_MAXIMIZEBOX
lStyle = lStyle Or WS_MINIMIZEBOX
Else
'分别使系统菜单(包括图标)、标题、大小、最大化、最小化隐藏/无效
lStyle = lStyle And Not WS_SYSMENU
lStyle = lStyle And Not WS_CAPTION
lStyle = lStyle And Not WS_SIZEBOX
lStyle = lStyle And Not WS_MAXIMIZEBOX
lStyle = lStyle And Not WS_MINIMIZEBOX
End If
'按lStyle的值设置窗体信息
SetWindowLong Me.hwnd, GWL_STYLE, lStyle
'保持窗体的大小与位置不变
SetWindowPos Me.hwnd, 0, MyRect.Left, MyRect.Top, MyRect.Right - MyRect.Left, MyRect.Bottom - MyRect.Top, SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED
'改变显示/隐藏状态
Change = Not Change
End Sub

『玖』 VB sendkey可以向指定窗口发送消息吗 如果可以 怎么实现

可以的,比如先启动计算器,再在VB中运行下面的代码即可向计算器中输入数字专:
AppActivate "计算器"
SendKeys "1234"

不过一般来说这属个只能实现简单的功能,如果要想实现复杂一些的操作(比如向处于后台运行状态的窗口发送按键消息,并且不影响前台的键盘操作),就要借助API函数了,而且代码量也比较大。所谓的API就是FindWindow先找到指定窗口的句柄,再用SendMessage发送按键消息咯。不过这就跟VB本身的sendkey无关了。

『拾』 易语言在指定窗口发送指定信息软件怎么制作

QQ聊天窗口你是取不到句柄的,不信你试试。几年前的老版本QQ可以取到

阅读全文

与给指定窗口发消息工具相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接