SP3 如何读取 牛游戏网

在众多的共享软件中,有一种小东东可能大家比较感兴趣&&《获取编辑框中的密码》。实际上它的实现机理很简单,与获取任何一个窗口中的文字没有本质上的区别。但要获取另一个线程内的编辑框中的密码则稍微有点麻烦,关键是如何获取编辑框的句柄。下面介绍两种方法,供各位有兴趣的朋友参考。第一种方法:获取鼠标指针法这种方法的关键是获取当前鼠标指针指向的窗口的句柄。要获取当前鼠标指针的位置使用系统函数::GetCursorPos(&point)即可,参见MSDN中有关cursor的函数。实现步骤如下:1、在对话框中建立一个定时器(间隔2秒),并在OnTimer函数中作如下操作:2、在OnTimer(UINT nIDEvent)函数中调用系统函数::GetCursorPos(&point);3、调用CWnd::WindowFromPoint(point)获取目标窗口的指针w(类型为CWnd*);5、调用w-&GetSafeHwnd( )得到该窗口的句柄hWnd;6、调用::GetClassName()获取该窗口的类名,判断其类名是否是&Edit&。调用::GetWindowLong(hWnd,GWL_STYLE) 判断其窗口风格是否是ES_PASSWORD,以便确定是不是密码;7、调用::SendMessage(&&&&(HWND) hWnd,&&&&&&&&&&&&& // handle to destination window & &&&&WM_GETTEXT,&&&&&&&&&&&&&& // message to send& &&&&(WPARAM)55,&&&&&&&&& // number of characters to copy& &&&&(LPARAM) sName&&&&&&&&&& // text buffer&&&&);获取目标窗口(编辑框)中的文本(密码)。注意:用::GetWindowText()来获取另一个线程中编辑框中的文字是不行的,必须用SendMessage()。而反之用SendMessage()或::GetWindowText()来获取其他类型窗口的标题却都是可以的。以下示例的功能是随着鼠标指针的移动,自动获取指针所指向的窗口中的文本(或密码),已调试通过。void CGetpassDlg::OnTimer(UINT nIDEvent) {&CP&::GetCursorPos(&point);&CWnd* w=CWnd::WindowFromPoint(point);&&char sName[60];&HWND hWnd=NULL;&if(w!=NULL)&hWnd=w-&GetSafeHwnd( );&&if(hWnd != NULL)&{&&::GetClassName(hWnd,sName,55);&&CString str(sName);&&&&m_strprompt="这不是密码!(:-&";&&if(str=="Edit" && ::GetWindowLong(hWnd,GWL_STYLE) & ES_PASSWORD)&&&&&&m_strprompt="哈哈,密码找到啦!(:-)";&&::SendMessage(&&&&&(HWND) hWnd,&&&&&&&&&&&&& // handle to destination window & &&&&&WM_GETTEXT,&&&&&&&&&&&&&& // message to send&& &&&&(WPARAM)55,&&&&&&&&& // number of characters to copy& &&&&&(LPARAM) sName&&&&&&&&&& // text buffer&&&&&);&&m_static_pass=sN&&&}&UpdateData(FALSE);&&CDialog::OnTimer(nIDEvent);}
第二种方法:获取输入焦点法这种方法的关键是获取具有键盘输入焦点的窗口的句柄:1、在对话框中建立一个定时器(间隔2秒),并在OnTimer函数中作如下操作:2、如果在Windows 95中,可以先用::GetForegroundWindow()获取用户当前工作的窗口句柄;3、调用::GetWindowThreadProcessId(hWnd,NULL)获取该窗口所属的线程的标识;4、调用::GetCurrentThreadId()获取当前线程的标识;4、调用::AttachThreadInput()将自己的线程与另一个线程关联起来。据我的感觉在这个函数调用中,两个线程标识符在参数表中的先后顺序似乎无所谓;5、调用:: GetFocus()函数即可获取当前具有键盘输入焦点的窗口句柄;6、调用::GetClassName()获取该窗口的类名,判断其类名是否是&Edit&。调用::GetWindowLong(hWnd,GWL_STYLE) 判断其窗口风格是否是ES_PASSWORD,以便确定是不是密码;7、如果该窗口类名是&Edit&,则调用::SendMessage(&&&&(HWND) hWnd,&&&&&&&&&&&&& // handle to destination window & &&&&WM_GETTEXT,&&&&&&&&&&&&&& // message to send& &&&&(WPARAM)55,&&&&&&&&& // number of characters to copy& &&&&(LPARAM) sName&&&&&&&&&& // text buffer&&&&);8、调用::AttachThreadInput()将自己的线程与另一个线程拆开。如果在Windows 98 和 Windows NT 4.0 SP3 以上版本中,则用::GetGUIThreadInfo()可以获取系统中当前活动窗口的信息,例如:线程状态、活动窗口句柄、具有键盘输入焦点的窗口句柄、当前捕捉了鼠标输入的窗口句柄、拥有活动菜单的窗口的句柄、当前显示插字符的窗口句柄等。注意:使用这个函数时,必须包含winable.h文件,而且&#include & winable.h &&指令不要放在stdafx..h中,应直接放在相应的C文件中。示例代码较长,这里省略,请参阅下面的附录部分。小结上述方法实现的程序的特点是短小精悍,只有20多KB,如有朋友需要请来信。我认为第一种比较好,因为它简单。第二种方法用到别的程序里也许用处更大些。您如果有什么好主意,也不妨贡献出来让大家分享。
附录:下面是第二种方法中OnTimer函数的示例代码(已调试通过):void&&CGetpassDlg::OnTimer(UINT nIDEvent){&char sName[60]={0};
&//when used for windows 98 or later environment:#ifdef IN_WIN98_SYSTEM&GUITHREADINFO&&info.cbSize=sizeof(info);
&BOOL bl=::GetGUIThreadInfo(0,&info);&if(bl && info.hwndFocus != NULL)&{&&::GetClassName(info.hwndFocus,sName,55);&&CString str(sName);&&&&m_strprompt="这不是密码!(:-&";&&if(str=="Edit" && ::GetWindowLong(info.hwndFocus,GWL_STYLE) & ES_PASSWORD)&&&&m_strprompt="哈哈,密码找到啦!:-)";&&::SendMessage(&&&&&(HWND) info.hwndFocus,&&&&&&&&&&&&& // handle to destination window & &&&&&WM_GETTEXT,&&&&&&&&&&&&&& // message to send&& &&&&(WPARAM)55,&&&&&&&&& // number of characters to copy& &&&&&(LPARAM) sName&&&&&&&&&& // text buffer&&&&&);&&m_static_pass=sN&&&}#else&//when used for windows 95 environment:&DWORD curID,wID;&HWND hWnd=::GetForegroundWindow();&if(hWnd!=NULL)&{&&curID=::GetCurrentThreadId();&&wID=::GetWindowThreadProcessId(hWnd,NULL);&&::AttachThreadInput(&&&wID,&&& // thread to attach&&&curID,& // thread to attach to&&&TRUE&&&&& // attach or detach&&&);&&hWnd=::GetFocus();&&if(hWnd!=NULL)&::GetClassName(hWnd,sName,55);&&CString str(sName);
&&m_strprompt="这不是密码!:-&";&&if(str=="Edit" && ::GetWindowLong(hWnd,GWL_STYLE) & ES_PASSWORD)&&&&&m_strprompt="哈哈,密码找到啦!:-)";&&::SendMessage(&&&&(HWND) hWnd,&&&&&&&&&&&&& // handle to destination window & &&&&WM_GETTEXT,&&&&&&&&&&&&&& // message to send& &&&&(WPARAM)55,&&&&&&&&& // number of characters to copy& &&&&(LPARAM) sName&&&&&&&&&& // text buffer&&&&);&&m_static_pass=sN&&&::AttachThreadInput(&&&wID,&&& // thread to attach&&&curID,& // thread to attach to&&&FALSE&&&&& // attach or detach&&&);&}#endif&UpdateData(FALSE);
&CDialog::OnTimer(nIDEvent);}
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3029583次
积分:44780
积分:44780
排名:第27名
原创:1123篇
转载:2805篇
评论:1040条
(9)(37)(73)(34)(31)(120)(128)(183)(23)(69)(75)(1)(171)(33)(148)(168)(145)(28)(144)(139)(208)(61)(59)(10)(10)(32)(2)(7)(34)(24)(9)(39)(25)(32)(46)(20)(44)(8)(21)(43)(49)(100)(113)(136)(35)(55)(15)(29)(41)(15)(50)(17)(20)(182)(206)(43)(27)(19)(17)(13)(1)(40)(5)(3)(4)(21)(71)(73)(19)(2)(2)(1)(1)(1)(6)(3)我电脑配置很差,玩英雄联盟,游戏中不卡,只是在召唤的时候那读取进度很慢怎么办?_百度知道
内存果断太小,在加一个1G内存条 显卡换成独立的 速度就很快了 如果考虑到价格 , 换个独立显卡也就很快了 9500GT 显卡便宜玩LOL无压力
其他类似问题
英雄联盟的相关知识
其他5条回答
内存 内存弱爆了 网络游戏 除了新出的棒子游戏 其他的不怎么烧显卡 网络游戏重点在CPU和内存上面 因为玩家多了 读写量也就大了
显卡只要合格就可以了
这种显卡玩游戏还可以吗?
那是显卡问题 相信我 换个显卡 当然内存也有点关系
&那这种显卡可以吗?&
你看到那个显卡容量了吗&我家的也是256m的&玩起来还好&就是刚进地图的时候卡的&像sb一样的&要差不多卡到1分钟左右以后你基本就可以动了&然后玩起来就好了&
你的电脑内存太小了,换成2G的吧。显卡最好换成独显。这样玩游戏还多了,如果还卡就是网络问题了,建议用 珑凌网游加速器解决网络问题。
电脑型号X86 兼容 台式电脑操作系统Windows XP 专业版 32位 SP3 ( DirectX 9.0c )处理器英特尔 Pentium(奔腾) 双核 E5400 @ 2.70GHz主板梅捷 SY-I5G41-L V5.0 (英特尔 4 Series 芯片组 - ICH7)内存2 GB ( 金士顿 DDR3 1333MHz )主硬盘西数 WDC WD5000AADS-00S9B0 ( 500 GB /
转/分 )显卡英特尔 G41 Express Chipset ( 256 MB / 英特尔 )显示器三星 SAM06A3 SME1920N ( 18.5 英寸 )光驱日立-LG DVDROM DH18NS40 DVD光驱声卡英特尔 82801G(ICH7) 高保真音频网卡瑞昱 RTLE Family PCI-E Fast Ethernet NIC这种可以吗??
- -我草 这内存 我4G内存玩游戏还嫌小 果断你赶快加内存把
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁游戏安全系统检测到游戏文件缺失或损坏,请获取正确文件进行替换,或重装游戏客户端!重下载N回都不行·郁闷·
游戏安全系统检测到游戏文件缺失或损坏,请获取正确文件进行替换,或重装游戏客户端!重下载N回都不行·郁闷·
实在不懂 去我Q Q空间第一篇日志看详解
其他回答 (1)
部分非法软件和木马病毒会将系统目录下的“msvcirt.dll”文件破坏或删除,导致您在游戏中出现“TENVF0”的错误提示,从而影响您正常游戏。
临时解决方法如下: 方法一:
下载“恢复.cmd”的处理文件,下载至桌面后将名字改为“恢复.cmd”,然后双击运行,运行界面会在1秒钟后消失,运行后正常启动游戏即可。
方法二:
第一种方法未恢复的玩家,需要根据自己的系统下载对应的“msvcirt.dll”文件进行替换,如xp-sp3的玩家下载“msvcirt.dll_xpsp3”,vista的玩家下载“msvcirt.dll-vista”文件,下载后把文件名字改为“msvcirt.dll”,然后将该文件移动至系统目录“C:\WINDOWS\system32”下,放好以后运行游戏即可。
方法三:
部分玩家使用第二种方法时会提示该目录下已经有msvcirt的文件夹,如果出现该提示,请到系统目录“C:\WINDOWS\system32”下找到一个以“msvcirt”命名的文件夹,将其删除,然后正常登录游戏即可。
如果想根治此问题,需要您在平时游戏时不要使用非法软件,大部分非法软件都捆绑有木马病毒,不仅会影响您正常游戏,更会导致系统崩溃、蓝屏等现象。
等待您来回答
其它网游领域专家梦幻西游 进游戏后在读取服务器数据时弹出异常错误!_百度知道
梦幻西游 进游戏后在读取服务器数据时弹出异常错误!
每次进游戏时,检查更新一完到读取服务器数据时就提示&非常遗憾的通知您.程序内部发生了不可挽回的错误.如果你有启动游戏录像功能的话,您刚才的整个过程已经北记录在record.rec文件中,非常希望能将此文件,连同以下的错误代码,email给技术人员,让我们可以重现您碰到的问题,着手解决.exception code : c0000005 , at address 6db1249&问题补充:1.别说我系统和梦幻冲突了..几个月前还好好的.2.别说杀毒软件的事..我都试过了..包括更新和关闭和重下!3.别说重做系统,我也试过了,还是不行!!给个具体能解决的办法!!!
.系统消息框 &非常遗憾的通知您,程序内部发生了不可挽回的错误,如果你有启动游戏录像功能的话,您刚才的整个操作过程已经被记录在record.rec文件中,非常希望能将此文件,连同以下的错误代码,email给技术人员,让我们可以重现您碰到的问题,着手解决。Exception Code:C0000005,at address 4DA613C&
可能是 系统不兼容
(我装 XP SP2 的时候就是这样,换了 SP3 就没事了)
其他类似问题
梦幻西游的相关知识
按默认排序
其他2条回答
那就不知道该怎么搞了,去网吧上吧,那台电脑可以扔了
......这问题难不过我有办法
那就是换电脑
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 flash游戏 的文章

 

随机推荐