如何得到游戏里对话框中的内容 API C#

如何得到游戏里对话框中的内容 API C#,第1张

游戏里面的控件都不是实际上的控件,你不可能像用spy++等工具进行捕捉(除非是控件游戏,不过那多是不成熟的产品)

游戏中的控件你可以这样理解,你用C#写个程序,在主窗口上面画一个框,框里面写两个字,把它理解为一个按钮,然后给窗口加入鼠标事件,当鼠标点击时坐标在这个框框上就判断为单击了这个按钮,这就是游戏里面的控件,除了窗口之外没有其它控件了,其实用DX绘图与GDI+绘图的原理是一样的,只是DX更加高效,用这种方法制作虽然麻烦,但是能完全自定义外观,而且能与游戏最大地兼容并节约内存,你说这种控件你能用spy++捕捉到么?

不过即使使用这种方法,游戏总还是会在内存中储存相应的数据的,只要对内存下手就可以了,如果你想获得游戏内存中的数据,需要访问进程内存,就需要使用诸如openprocess、readprocessmemory等的API了,内存地址你通过可以反汇编,也可以等游戏运行时用内存搜索工具进行搜索,拿到内存地址一切就好办了

首先使用getChildAt或者findViewById等方式找到自己的子控件 然后对子控件调用getLayoutParams,获取它的布局参数 这样在返回的layoutparams 对象中就有各种margin存在

有几种方法实现:

1创建一个桌面大小的"透明窗体",并且边框设为0。这样窗口坐标就是桌面坐标,在自己程序的消息循环中捕获鼠标消息就行了。QQ、RTX的"屏幕截图"功能就是这样实现的。

2使用SetWindowsHookEx捕获WH_MOUSE、WH_GETMESSAGE消息。并将SetWindowsHookEx的第四个参数设置为NULL,捕获全局的消息。然后在第二个参数的回调函数中调用CallNextHookEx,以及监听鼠标消息。程序关闭后,别忘记调用UnhookWindowsHookEx。还有就是程序要写在DLL中,因为系统会把它注入到其它进程中去捕获消息的。可以参考网上SetWindowsHookEx实现键盘记录的例子,实现鼠标记录。

3驱动中Inline Hook Mouclass鼠标类驱动的MouseClassServiceCallback函数,获得鼠标输入。

建议使用1、2中的一种方法。没必要开发驱动,这里只是介绍有几种方法可以获得鼠标全局点击事件。

来自:>

比较简单的写法,在你需要读取的时候,直接string str="";thisInvoke((EventHandler)(delegate{ // 这里写你的控件代码,比如 //str= targetSelectedText; }));至于普通的写法怎么写,你搜索一下C#跨线程访问就算。

1、可以使用了“notify”风格(即是控件的SS_NOTIFY风格)后,当点击该控件时,其父窗口会收到下列消息:

消息名为:

WM_COMMAND

消息的参数:

wParam: LOWORD(wParam)存放的是控件的ID,HIWORD(wParam)放的是STN_CLICKED(这是静态控件被 点击的标志)

lParam: 该控件的句柄。

2、例子:

case WM_COMMAND:

{

if(HIWORD(wParam) == STN_CLICKED)

{

if(LOWORD(wParam) == 某个控件)

{

处理之

}

}

}

以上就是关于如何得到游戏里对话框中的内容 API C#全部的内容,包括:如何得到游戏里对话框中的内容 API C#、如何获取layoutcontrol内的控件、如何获取任意窗口中的控件的位置,返回坐标vc的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9489539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存