【问题标题】:Applescript Realistic KeystrokeApplescript 逼真的击键
【发布时间】:2014-12-06 23:59:43
【问题描述】:

是否可以使用 Applescript 快速有效地以随机速度输入文本?我有以下脚本:

在运行{输入,参数}:

tell application "System Events"
    keystroke "H"
    delay 0.2
    keystroke "i"
    delay 0.2
    keystroke " "
    delay 0.2
    keystroke "t"
    delay 0.2
    keystroke "h"
    delay 0.2
    keystroke "e"
    delay 0.2
    keystroke "r"
    delay 0.2
    keystroke "e"
    delay 0.2
    keystroke "!"
    delay 0.1
    key code 36
    delay 0.5
    keystroke "H"
    delay 0.2
    keystroke "o"
    delay 0.1
    keystroke "w"
    delay 0.2
    keystroke " "
    delay 0.1
    keystroke "a"
    delay 0.2
    keystroke "r"
    delay 0.1
    keystroke "e"
    delay 0.2
    keystroke " "
    delay 0.1
    keystroke "y"
    delay 0.2
    keystroke "o"
    delay 0.2
    keystroke "u"
    delay 0.1
    keystroke "?"
    delay 0.2
    key code 36
    delay 1.0
    keystroke "W"
    delay 0.2
    keystroke "h"
    delay 0.2
    keystroke "e"
    delay 0.1
    keystroke "r"
    delay 0.2
    keystroke "e"
    delay 0.2
    keystroke " "
    delay 0.1
    keystroke "d"
    delay 0.2
    keystroke "o"
    delay 0.2
    keystroke " "
    delay 0.2
    keystroke "y"
    delay 0.2
    keystroke "o"
    delay 0.1
    keystroke "u"
    delay 0.2
    keystroke " "
    delay 0.1
    keystroke "w"
    delay 0.2
    keystroke "a"
    delay 0.1
    keystroke "n"
    delay 0.2
    keystroke "t"
    delay 0.2
    keystroke " "
    delay 0.1
    keystroke "t"
    delay 0.3
    keystroke "o"
    delay 0.2
    keystroke " "
    delay 0.1
    keystroke "b"
    delay 0.2
    keystroke "e"
    delay 0.2
    keystroke "g"
    delay 0.1
    keystroke "i"
    delay 0.2
    keystroke "n"
    delay 0.1
    keystroke "?"
end tell

return input
end run

基本上,我想在一次击键(或类似命令)中输入所有单词(至少 1 行),然后在每个键之间使用如下所示的随机延迟。有可能吗?

delay (random number from 0.05 to 1.0)

【问题讨论】:

    标签: applescript keystroke


    【解决方案1】:

    解决了 - http://christianheilmann.com/2014/01/09/autmating-typing-in-screencasts-with-applescript-or-how-to-look-like-a-hollywood-hacker/

    您只需要创建一个文件(我使用的是 .txt 文件而不是 .js 文件),然后指定位置并嘿嘿。

    这是我对随机文本速度的调整:

    set fc to read POSIX file "/test/testdoc.txt" as «class utf8»
    
    set the text item delimiters to (ASCII character 10)
    set mylines to text items in fc
    repeat with currentline in mylines
        write_string(currentline)
    end repeat
    
    on write_string(the_string)
        tell application "System Events"
            tell application "textedit" to activate
            delay 10
            repeat with the_character in the_string
                keystroke the_character
                delay (random number from 0.05 to 0.25)
            end repeat
            key code 36
            key code 123 using command down
        end tell
    end write_string
    

    【讨论】:

      【解决方案2】:

      如果您不介意没有退货,请使用:

      delay 3 
      
      set new_array to "h, i, ,  t, h, e, r, e, !,  , h, o, w,  , a, r, e,  , y, o, u, ?,  , w, h, e, r, e,  , d, o,  , y, o, u,  , w, a, n, t,  , t, o,  , b, e, g, i, n, ?"
      set AppleScript's text item delimiters to ", "
      set the list_items to every text item of the new_array
      set a to list_items
      set b to count of list_items
      set c to 0
      tell application "System Events"
      repeat b times
          set c to c + 1
          delay (random number from 0.05 to 0.3)
          keystroke item c of a
      end repeat
      end tell
      

      但如果你想要回报,那就用这个:

      delay 3
      set a to "h, i, ,  t, h, e, r, e, !"
      set b to "h, o, w,  , a, r, e,  , y, o, u, ?"
      set c to "w, h, e, r, e,  , d, o,  , y, o, u,  , w, a, n, t,  , t, o,  , b, e, g, i, n, ?"
      set AppleScript's text item delimiters to ", "
      set the list_items to every text item of the a
      set d to list_items
      set e to count of list_items
      set f to 0
      set AppleScript's text item delimiters to ", "
      set the m to every text item of the b
      set g to m
      set h to count of m
      set i to 0
      set AppleScript's text item delimiters to ", "
      set the n to every text item of the c
      set j to n
      set k to count of n
      set l to 0
      tell application "System Events"
      repeat e times
          set f to f + 1
          delay (random number from 0.05 to 0.3)
          keystroke item f of d
      end repeat
      key code 36
      repeat h times
          set i to i + 1
          delay (random number from 0.05 to 0.3)
          keystroke item i of g
      end repeat
      key code 36
      repeat k times
          set l to l + 1
          delay (random number from 0.05 to 0.3)
          keystroke item l of j
      end repeat
      end tell
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多