yalong486 发表于 2013-5-5 21:09:52

关于使用send输入密码时无效的问题

目前本人正在论坛搜索答案,但是还没找到之前,还请高手相助,非常感激!
$gameedit="夺宝传世 "
$logox=250 ;登陆用户时x坐标
$logoy=330 ;登陆用户时y坐标
mainmenu()
。。。
Func _ID05()
WinActivate($gameedit)       
MouseClick("left",$logox,$logoy,1,1)
sleep(1000)
send("13800138000")
Send("{tab}")
sleep(1000)
ControlSend($gameedit,"","",'zg13800138000yd')
send("{enter}")
EndFunc

以上语句原来使用没问题的,但是最近游戏公司修改了登录器,用户名使用send("13800138000") 可以正常输入,但是在密码框内使用ControlSend($gameedit,"","",'zgyd138000138000')语句时,出现错误提示,改用send(“zgyd138000138000”),只能输入第一个字符,输入第二个字符时候马上出现游戏系统错误提示。
由于游戏内容很大,在论坛上举例是没法实现的,加密方法也不得而知,想不明白的是,采用send和controlsend模拟输入,竟然也不是100%模拟,还能被游戏识别而被禁止。
当然,主要还是求高手帮助解决此问题,或提供思路,在此先说声感谢!

lin6051 发表于 2013-5-5 22:11:20

和工商银行等一样 网页登陆好像也不能send等 系统自带屏幕键盘也输入不了,

yalong486 发表于 2013-5-6 00:34:24

本帖最后由 yalong486 于 2013-5-6 00:36 编辑

论坛搜了一下,使用大漠模拟,还是不行,不知我的语句有没有问题,请会的老师指点,谢谢!

If IsObj($DM) Then
      $ver = $DM.Ver()
      ConsoleWrite('> 插件版本:' & $ver & @CRLF)
Else
      MsgBox(64, '提示:', '注册大漠插件失败!!!')
      Exit
EndIf
       
       
Func _RegDM($dll_path)
      Local $obj = ObjCreate("dm.dmsoft")
      If Not IsObj($obj) Then
                RunWait(@ComSpec & ' /c regsvr32 /s ' & FileGetShortName($dll_path), '', @SW_HIDE)
                $obj = ObjCreate("dm.dmsoft")
      EndIf
      Return $obj
EndFunc
       
       
Func _ID05()
        WinActivate($gameedit)       
        $Hwnd = $DM.FindWindow("",$gameedit)
        MouseClick("left",$logox,$logoy,1,1)
        $DM.SendString($Hwnd, '13800138000')
EndFunc

执行_ID05()后,没有任何反应,第一次尝试,我是很白的,请路过看到,知道怎么解决的指点一下。

iori2882 发表于 2013-5-6 15:09:27

换种办法吧,2楼说的对,应该是更新后不支持SEND输入了 好多游戏都这样

zch11230 发表于 2013-5-7 17:30:36

破解绕过检测 或者买按键盒子
页: [1]
查看完整版本: 关于使用send输入密码时无效的问题