找回密码
 加入
搜索
查看: 19602|回复: 25

[系统综合] DNF自动登录总提示密码错误,手动正常

 火.. [复制链接]
发表于 2012-4-4 22:33:26 | 显示全部楼层 |阅读模式
悬赏50金钱已解决
本帖最后由 bdancerlc 于 2012-4-6 16:14 编辑

最近帮一个朋友做DNF自动登陆器,软件登录总是提示密码错误,手动登录可以正常登录..
账号密码输出正确,但是还是提示错误,个人觉得是不是DNF自身检测到是软件输入,所以不让登录?...
求正确方法...



$DNFHwnd = WinGetHandle('地下城与勇士')
If $DNFHwnd <> 0 Then
        $User = 'QQ号'
        $Psw = '密码'
        ConsoleWrite($User & @CRLF & $Psw)
        ControlSend($DNFHwnd, '', '[CLASS:Edit; INSTANCE:1]', String($User))
        ControlSend($DNFHwnd, '', '[CLASS:Edit; INSTANCE:2]', String($Psw))
Else
        MsgBox(64, '提示:', '未发现DNF窗口...')
EndIf


------------------------------------------------------------------------------
勉强解决,等待高人出手,给出更佳解决办法!...
最后还是通过 winio.dll 进行 驱动方式模拟键盘 勉强实现~
缺点:
1、安全性不好...
(如果在输入密码时焦点转移了,密码可能就暴露了,如果拆分密码到单个字符,分开调用,实时判断焦点,然后进行处理可能提高点安全系数,但是效率和占用资源可能不理想...)
2、需要传统接口的键盘,不支持USB接口的...这样的话程序的兼容性就不好了...
(我自己用的是USB接口,为了测试借了一个传统接口的键盘...)

希望高手伸出援手,能让AU3本身就支持 驱动模拟方式就太好了...

详情看帖:http://www.autoitx.com/forum.php ... 6%AF%2B%BC%FC%C5%CC
附件: 您需要 登录 才可以下载或查看,没有账号?加入

最佳答案

查看完整内容

我把Key_event的例子代码发到源码区了, 有利于别人以后查找帖子,所以我才没有用回复的形式发到这里。 好吧, 我其实是不知道还有传送门这个东东的。 传送门

评分

参与人数 1金钱 +20 收起 理由
afan + 20 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-4-4 22:33:27 | 显示全部楼层
本帖最后由 lanfengc 于 2012-4-10 10:08 编辑
回复  lanfengc


    多谢 前辈指点,Au3 UP DOWN 方式发送已经试过了,还是不行,现在我知道的方式是 ...
bdancerlc 发表于 2012-4-6 17:43


终于来了,就等你呢
魔导 发表于 2012-4-9 09:09



我把Key_event的例子代码发到源码区了, 有利于别人以后查找帖子,所以我才没有用回复的形式发到这里。

好吧, 我其实是不知道还有传送门这个东东的。 传送门

评分

参与人数 1金钱 +40 收起 理由
bdancerlc + 40 非常感谢...

查看全部评分

发表于 2012-4-4 22:51:21 | 显示全部楼层
如果输入好账号密码后,可以直接按回车登录,那就试试这个看

$DNFHwnd = WinGetHandle('地下城与勇士')
If $DNFHwnd <> 0 Then
        $User = 'QQ号'
        $Psw = '密码'
        ConsoleWrite($User & @CRLF & $Psw)
        ControlSend($DNFHwnd, '', '[CLASS:Edit; INSTANCE:1]', String($User))
        ControlSend($DNFHwnd, '', '[CLASS:Edit; INSTANCE:2]', String($Psw))
        _SendMessageA($DNFHwnd, $WM_CHAR, 0x0D, 1)
Else
        MsgBox(64, '提示:', '未发现DNF窗口...')
EndIf

评分

参与人数 1金钱 +10 收起 理由
bdancerlc + 10

查看全部评分

发表于 2012-4-4 22:53:51 | 显示全部楼层
回复 1# bdancerlc

试试这个
ControlSend($DNFHwnd, '', '[CLASS:Edit; INSTANCE:2]', String($User), 1)

标志 [可选参数] 修改程序处理的按键方式:
  标志 = 0 (默认), 按键序列中含有的特殊字符比如 + 和 {LEFT} 将被视为 SHIFT 和左箭头键.
  标志 = 1, 按键按原样发送.

评分

参与人数 1金钱 +10 收起 理由
bdancerlc + 10

查看全部评分

 楼主| 发表于 2012-4-4 23:00:36 | 显示全部楼层
回复 3# lixiaolong


    你这种已经试过了,应该不是这个原因,账号密码可以正确输出,就是软件不给你登录..
发表于 2012-4-4 23:05:45 | 显示全部楼层
被+了干扰码

评分

参与人数 1金钱 +10 收起 理由
bdancerlc + 10

查看全部评分

发表于 2012-4-4 23:05:58 | 显示全部楼层
这个小弟也做过,以前用的是   纯模拟操作  搭配  找色
但是最近好像被封住了

评分

参与人数 1金钱 +10 收起 理由
bdancerlc + 10

查看全部评分

 楼主| 发表于 2012-4-4 23:07:22 | 显示全部楼层
回复 2# 298311657


    我搜索到这个帖子的时候已经试过了这种方法,http://www.autoitx.com/forum.php?mod=viewthread&tid=18431
    连密码都输不进去...
    貌似只有ControlSend比较好用...
 楼主| 发表于 2012-4-4 23:10:05 | 显示全部楼层
回复 5# 80ren


    不知道有没有办法解决这个问题?
    干扰码原理是怎样的?...
 楼主| 发表于 2012-4-4 23:12:53 | 显示全部楼层
回复 6# 魔导


    你的方法有源码吗?
    找图,找色也会被封吗?...
发表于 2012-4-4 23:22:46 | 显示全部楼层
可惜没有DNF源码,帮不了你了。理论来说使用 _SendMessage发送按键消息应该是可以的
发表于 2012-4-4 23:23:48 | 显示全部楼层
回复 9# bdancerlc


    找色,用来确定RUN()后的状态
只是找几个色点
现在模拟操作被  封住了
发表于 2012-4-4 23:24:43 | 显示全部楼层
建议联系一下  LANFENGC   搞游戏外挂的那前辈
发表于 2012-4-5 11:51:23 | 显示全部楼层
估计是DNF有干扰

评分

参与人数 1金钱 +10 收起 理由
bdancerlc + 10

查看全部评分

 楼主| 发表于 2012-4-5 12:42:34 | 显示全部楼层
回复 13# lin0308


    求解啊...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-11 20:25 , Processed in 0.083025 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表