从外部获取一个edit框内数据的几种思路

整理了一下 主要有这几个
findwindow  查找一个窗口
enumwindow 枚举窗口,通过回调函数,回调函数决定是否继续枚举
enumchildwindow 枚举某窗口的子窗口,比如先findwindow到qq的登录窗体 然后用enumchildwindow查找密码框(实际上 密码框不直接属于登录窗体)
windowfrompoint 获取当前鼠标所在位置的窗口


只要先获取到了窗体,就可以通过getwindowtext或者getdlgitemtext来获取内容

或者直接sendmessage

比如取qq账号,因为qq账号是一个combobox,所以要向combobox发送CB_GETLBTEXT消息,来获取当前的qq帐户

另外 findwindow有两个参数
第一个参数是类名 比如ComboBox,Edit或者#32770,(#32770是mfc的dialog base的类名)
第二个参数是窗体类的title

还有,就是ES_PASSWORD的EDIT控件,想要获取它的Text不能直接通过GetWindowText了,因为win98之后的操作系统,做了限制,不能跨进程调用,一般方法是OpenProcess,然后VirtualAllocEx一些远程进程的内存,然后在这片内存中写入一个函数,WriteProcessMemory,最后是CreateRemoteThread,创建远程线程,这种技术叫做进程注入,一般杀毒软件都会进行对OpenProcess和CreateRemoteThread等函数进行ApiHook进行拦截。

你可能感兴趣的:(it)