Applescript - создание массива из списка и вставка значения? - PullRequest
1 голос
/ 07 апреля 2020

Я, может быть, слишком усложняю это, но я довольно новичок в Applescript, поэтому я хотел бы обратиться сюда.

По сути, я пытаюсь oop войти в программу для 10 человек. Счета были переданы мне в виде списка, и я решил, что лучше всего сделать его массивом. Я использовал этот скрипт для создания массива:

set stringofitems to "jim
pam
oscar
stanley
michael
dwight
creed
angela
kevin
andy"

set text item delimiters to "
"
set listofitems to text items of stringofitems

repeat with theitem in listofitems

    # stuff to do with each item

end repeat

Если я хочу отобразить запись из этого нового массива , она работает :

Вот мой скрипт для зацикливания процесса входа в систему:

tell application "System Events"
    tell process "MyApp"
        set frontmost to true 
        click menu item "Sign In" of menu "Account" of menu bar 1
    end tell
end tell

delay 2

set appName to "jim"
set appPass to "hunter2"

tell application "System Events"
    tell process "MyApp"
        set value of text field 1 of window 1 to appName
        set value of text field 2 of window 1 to appPass
        delay 0.4
        key code 36
    end tell
end tell

Это работает само по себе, но главная цель здесь - возможно, каким-то образом объединить два, так что я могу просто запустить appleScript и он запускается через каждого пользователя только что созданного массива «listofitems» из первой части.

В качестве примечания мне нужно создать и использовать переменные «appName» и «appPass», чтобы обойти защитные средства автоматизации Secure Input.

Если есть способ получше, пожалуйста, дайте мне знать.

Спасибо!

1 Ответ

0 голосов
/ 08 апреля 2020

Кажется, я понял это.

В общем, забудьте про весь код "список в массив", чтобы упростить его, я не включил его и просто создал массив сам.

* 1004 Вот что я собрал, чтобы заставить его работать:
tell application "MyApp" to activate
delay 1
tell application "System Events"
    tell process "MyApp"
        set frontmost to true
        click menu item "Sign In…" of menu "Account" of menu bar 1
    end tell
end tell

delay 2

tell application "System Events"
    tell process "MyApp"
        click menu button "Options" of window 1
        keystroke "e"
        key code 36
        keystroke "u"
        key code 36
    end tell
end tell

delay 2

set userList to {"jim", "pam", "oscar", "stanley", "michael", "dwight", "creed", "angela", "kevin", "andy"}
repeat with a from 1 to length of userList
end repeat

set appName to item a of userList
    -- this tells the the script, when appName is called, begin with the first entry and continue to the end ("a" from "1"), instead of calling for "item 1" or "item 4", etc.
set appPass to "hunter2"

tell application "System Events"
    tell process "MyApp"
        set value of text field 1 of window 1 to appName
        set value of text field 2 of window 1 to appPass
        delay 0.4
        key code 36
        wait 4
    end tell
end tell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...