FindWindow根据类名\窗口标题寻找窗口
遍历顶层窗口EnumWindows
遍历窗口回调函数EnumWindowProc
遍历父窗口的所有子窗口EnumChildWindows
返回父窗口Point处的子窗口ChildWindowFromPoint
ChildWindowFromPointEx多一个参数UINT来忽略不可见无效透明的子窗口
获取与指定窗口具有莫种关系的窗口GetWindow
获取父窗口的子窗口中Z序最大的子窗口GetTopWindow
获取指定窗口相同层次Z序差1的窗口GetNextWindow
获取桌面窗口句柄GetDesktopWindow
用SendMessage函数不需要窗口标题的,只要句柄
LRESULT SendMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
或者用keybd_event函数,要先用SetForegroundWindow函数把目标窗口设置成前台窗口
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
补充:
第一个:我进入某个游戏,用CE查到内存地址后,退出游戏,再查内存地址,两个内存地址是不一样的,有什么办法可以让每次的内存地址都一样?或者说下别的解决方法?
不让每次的内存地址都一样应该是做不到的,游戏每次运行由系统分配内存,哪能让你控制啊。
第二个:我想让鼠标在内存数值到某一个数值时,鼠标移动到某点进行鼠标 *** 作,该怎么写源代码?
定义一个指针变量p,类型根据你需要的数值而定
p=该内存地址
if(p==该数值)
{
//mousemove
}
解决方法:控制面板---管理工具----服务,将“Terminal Services”改成“自动”,并启动服务,即可解决
转自:>
在 VBScript 中,你可以使用 WScriptShell 对象和 AppActivate 方法来获取顶层窗口的句柄。
以下是获取顶层窗口句柄的 VBScript 代码示例:
Set WshShell = WScriptCreateObject("WScriptShell")
' 激活指定窗口
WshShellAppActivate "窗口标题"
' 获取顶层窗口句柄
hwnd = WshShellAppActivate()
' 输出顶层窗口句柄
WScriptEcho "顶层窗口句柄:" & hwnd
在上面的代码中,我们首先创建了一个 WScriptShell 对象,并使用 AppActivate 方法激活了指定窗口。然后,我们调用 AppActivate 方法,不传递任何参数,以获取顶层窗口的句柄。最后,我们使用 WScriptEcho 方法输出了获取到的句柄。
需要注意的是,使用 AppActivate 方法获取窗口句柄需要确保窗口已经处于活动状态,否则可能会导致获取到错误的句柄。此外,AppActivate 方法只能获取到顶层窗口的句柄,如果需要获取其他窗口的句柄,需要使用其他方法。
代码如下:
PutAttachment "c:\test_game",""
PutAttachment "\Plugin" ,"RegDlldll"
Call PluginRegDllReg("c:\test_game\dmdll")
Set dm = createobject("dmdmsoft")
ver = dmVer()
MessageBox ver
hwnd = dmGetMousePointWindow()
MessageBox hwnd
我正在编写玩QQ三国游戏按键模拟,也遇到这问题,但是我不是代码问题,而是游戏隐藏了句柄,windows任务管理器里只有进程显示,我编写的取进程也有显示,也用过时钟周期事件取鼠标所在窗口句柄,就是取不到游戏句柄。正在头痛如何解决。你的问题也许跟我一样,你试试新建记事本取句柄试试,如果成功,你代码无误,反之审查代码,将我的取鼠标所在窗口代码写出如下:
画时钟一个,列表框一个,按钮一个
程序集变量 取游戏窗口句柄, 整数型
程序集变量 计时, 整数型
子程序 _以鼠标取句柄按钮_被单击 ’注释:点击后就可以移动鼠标到其他窗口停住,等待计时4秒完毕,如果本窗口被其他窗口淹没,等待4秒本窗口会再次显示
计时取句柄时钟时钟周期 = 1000
计时 = 0
子程序 _计时取句柄时钟_周期事件
计时 = 计时 + 1
以鼠标取句柄按钮标题 = 到文本 (计时) + “秒” ’注释:按钮标题变成秒计时
取游戏窗口句柄 = 取鼠标所在窗口句柄 ()
窗口标题 = 取窗口标题 (取游戏窗口句柄)
如果真 (计时 > 4)
如果真 (取游戏窗口句柄 ≠ 0)
列表框加入项目 (到文本 (取游戏窗口句柄) + “” + 窗口标题, )
如果真结束
计时取句柄时钟时钟周期 = 0 ’注释:时钟停止
如果真结束
如果真 (计时取句柄时钟时钟周期 = 0)
_启动窗口总在最前 = 真 ’注释:时间到后本窗口到顶层显示,用于提示完成取句柄。
_启动窗口总在最前 = 假 ’注释:恢复窗口本来属性
以上就是关于用keybd_event模拟键盘打开窗口,获取不到窗口句柄全部的内容,包括:用keybd_event模拟键盘打开窗口,获取不到窗口句柄、C#调试时出现获取窗口句柄无效是什么原因、vbs如何获取顶层窗口句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)