美文网首页
按键精灵开发者认证4级问答题(SayString)

按键精灵开发者认证4级问答题(SayString)

作者: 小Z在here | 来源:发表于2016-05-31 14:56 被阅读0次

    【题目】

    编写一个函数,实现SayString相似功能的函数,只要能够输入英文即可

    【考官答案评价】

    无法区分大小写,且给出代码调用无法直接输出字符(扣24分)

    【本人当时答案】

    Function likeSayString(key)
       Dim MyString
        MyString = Split(key, "")
        For i = 0 To UBound(MyString)
            TracePrint UBound(MyString)
              KeyPress MyString(i), 1
                Delay 200
            TracePrint i
            TracePrint MyString(i)
        Next
     End Function
    

    【你的参与】以评论(或写简书短文)指出可能有的错误,多多益善。


    【自我反思】

    提交答案之前,只是根据traceprint的结果才确定的。发现审核结果之后,发觉自己只是依据traceprint命令的结果,没有加以完善地测试。于是就使用下列代码进行实际测试,验证一下考官的结论是否正确。

    RunApp "notepad"
    Delay 1000  //这行还是测试几次后才加的,延时是很重要的初级手段(因为简单,所以也易遗忘)
    //稍高级一点的,可以用窗口标题查询窗口句柄,如有再继续操作。
    Call likeSayString("We enjoy life")
    

    【提示】

    RunApp "notepad"
    Delay 200 //Delay 延时一段(以毫秒为单位)特定的时间后,再执行后面的命令。
    一般在中间加上200毫秒的延时是比较合适的(具体数值以测试结果为准)
    KeyPress "A", 1
    KeyPress "a", 1
    

    猜想一下结果是什么,然后自己测试一下。你能得出什么结论呢?写下来,加深印象!


    对,你的猜想没错,keypress(“按键”)后有效的字符或字符串,不区分大小写。
    keypress要点如下:

    (1)按键码参数支持字符类型,每次只能按一个键。
    
    (2)按键码可以是纯数字或者是键盘某个键的字符或者字符串。
    但字符串必须与键盘上的按键码一致。例如[A]、[B]、[c]、[shift]、[Alt]、[Ctrl]等等。
    如果是不存在字符串,例如ABCD,执行时则不会有任何效果。
    (3)如果按键码的参数值不是一个存在的按键码值,运行时也没有任何效果。
    (4)按键码只表示键盘按键的值,不能直接按出"@"这类符号。
    

    ——以上引用自《零基础学按键精灵》(2012年8月第一版)


    【思路总结】

    思路1——《文本拆分拼接法》
    把要输入的文本,拆分成一个个字符,再一个个输入,要注意大小写。

    思路2——《文本复制粘贴法》
    把要输入的文本,直接复制到剪贴板上,再用粘贴的形式,输入文本。


    【反思总结】

    代码的测试——不能只看traceprint的结果,更要看实际调用的结果。
    延时——及时添加,之后要换稍高级的手法
    命令相关说明——官方文档好渣,最好自己建个完善的。(就比如keypress,竟然没说明,不区分大小写!我擦!)
    教程——不要光看官方网站上简陋的教程,还要看官方出版卖钱的教程书(教材)。

    相关文章

      网友评论

          本文标题:按键精灵开发者认证4级问答题(SayString)

          本文链接:https://www.haomeiwen.com/subject/alicdttx.html