教你百分百能解决输入框无法接收sendstring命令

2025-11-20 19:42:57

1、例如之前的DNF,我们想要写DNF拍卖行的脚本,但是却发现sendstring命令对拍卖行搜索输入框无效了。怎么办?(DNF目前似乎已经支持sendstring命令了,楼主今天进游戏前后台sendstring命令都测试过,可以输入。)

在之前不支持的情况下,有的朋友借助了输入法的短语功能,先把要搜索的内容都编辑成短语,例如:使徒之息百宝袋,我们设置输入法短语:stzxbbd。 然后在脚本中按下这组键既可输入短语内容。

2、但是,用这种方法要设置大量的输入法短语,非常不方便。

——可能有的朋友不需要输入汉字,只需要输入英文字母数字即可,这种情况,用keypress一个个输入或者用命令库里的    Call Lib.键盘.KeyList(键码组,模拟方式,毫秒延时) 这条键码组命令即可。

除了输入法这种麻烦的方法,还有其他的方法吗?

有的,那就是编码输入。

3、百分百能解决输入框无法接收sendstring命令——编码输入

 其实对于编码输入,大家并不陌生。曾经在网上流传过一种娱乐玩法,就是让你按住“Alt”键,然后输入一串数字(小键盘区,即Num0-Num9),再松开"Alt"会发现当前激活状态的输入框里会出现字符,文字。没错,其实这个就是编码输入。按住ATL 键后,按下数字,再松开,会将数字转换成相对的字符或者文字。

输入框所采用的编码方式不是相同的,有的使用Unicode编码方式,有的是使用ANSI 编码,那我们怎么知道输入框是属于哪种编码方式呢?

4、首先,我们需要先了解下下面的两个函数:

ASC函数

返回与字符串的第一个字母对应的 ANSI 字符代码。

ASCw函数

AscW 函数返回 Unicode (宽型)字符代码。

这里我们以QQ聊天输入框窗口为例,将“玩”字通过按小键盘的方法输入到QQ聊天窗口中,

首先我们需要测试,QQ聊天窗口是Unicode编码还是ANSI 编码。

我们输入下面两行代码,查看下“玩”字的ANSI编码是多少。

字符编码 =Asc("玩")

TracePrint 字符编码

教你百分百能解决输入框无法接收sendstring命令

5、玩字的ASC码是-12826,我们点击下QQ聊天窗口,按下atl键不放,然后连续按下小键盘数字键 -12826 ,松开atl键输出结果:(不是玩字而是其它字符)

教你百分百能解决输入框无法接收sendstring命令

6、 我们现在来查看下“玩”字的Unicode编码是多少

字符编码 =AscW("玩")

TracePrint 字符编码

教你百分百能解决输入框无法接收sendstring命令

7、 玩字的ASCW码是29609 , 我们点击下QQ聊天窗口,按下atl键不放,然后连续按下小键盘数字键 29609,松开atl键输出结果:(出现的是个玩字,说明QQ聊天窗口的编码方式是Unicode编码 )

教你百分百能解决输入框无法接收sendstring命令

8、我们把编码输入的方式,写成脚本

从模拟的角度来思考,脚本大致过程为:

1、 获取需要输入的字符串中的每个字符

2、 假设字符串为:变量"str"

则字符串中的每个字符即为:

For i=1 To Len(str)

单个字符=Mid(str,i,1)

Next

注:变量"单个字符",即为当前获取的每个字符。2、获取每个字符对应的编码

当要获取对应字符的Unicode编码时,则使用AscW命令,若为ANSI编码使则使用ASC命令。

Unicode编码获取:

字符编码=AscW(单个字符)

ANSI编码获取:

字符编码=Asc(单个字符)

若编码<0则+65536

    代码:

If 字符编码<0 Then

字符编码=字符编码+65536

End If

3、 将编码用键盘输入出来,则自动转换为文字    代码:

For k=1 To Len(字符编码)

KeyPress Asc(Mid(字符编码,k,1))+48,1

Next

解释:

Asc(Mid(字符编码,k,1))为获取单个字符的编码的每个数字。(因为编码是一串数字,我们要想输入必须拆开)

为什么每个编码还+48呢? 因为如果不加48,那脚本会自动输入0-9,而不是Num0-Num9,每个数字的按键码差均为48。如果是输入0-9,那就真的输入一串数字了,不会根据编码生成文字!

    源码:

Function SendString(发送内容, 发送延迟, 文字编码类型)

    If 文字编码类型 = "ANSI" Or 文字编码类型 = "Unicode" Then 

        Dim str, 字符编码,i, k

        str = 发送内容

        For i = 1 To Len(str)

            If 文字编码类型 = "ANSI" Then 

                字符编码 = Asc(Mid(str, i, 1))

            Elseif 文字编码类型 = "Unicode"

                字符编码 = AscW(Mid(str, i, 1))

            End If

            If 字符编码 < 0 Then 

                字符编码 = 字符编码 + 65536

            End If

            KeyDown 18, 1

            For k = 1 To Len(字符编码)

                KeyPress Asc(Mid(字符编码, k, 1)) + 48, 1

            Next

            KeyUp 18, 1

            Delay 发送延迟

        Next

        SendString=1

    Else 

        SendString=0

    End If

End Function

9、点击QQ聊天输入框,运行脚本,使用ANSI编码方式在QQ输入框中输入的结果如下:

教你百分百能解决输入框无法接收sendstring命令

10、 输出的是奇怪的字符。

    使用ANSI编码方式在ie浏览器中输入的结果如下:

教你百分百能解决输入框无法接收sendstring命令

11、输出正常。

    使用Unicode编码方式在QQ输入框中输入的结果如下:

教你百分百能解决输入框无法接收sendstring命令

12、 输出正常。

    使用Unicode编码方式在ie浏览器中输入的结果如下:

教你百分百能解决输入框无法接收sendstring命令

13、输出的是奇怪的字符。

    大家可以参照上面的测试方式,测试所要输入文字的输入框,是属于哪种编码方式。

        楼主测试了下,360浏览器和ie浏览器的输入框是ANSI编码,DNF 和最终幻想的输入框也是ANSI编码方式,大家之后要测试浏览器或者游戏,可以优先选择ANSI编码方式。

      这种编码方式模拟输入的方法,支持字符,文字,字母,数字的输入。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢