ลากเพื่อแปลง Automator Action เป็น Applescript


5

ใน Automator มีวิธีที่จะแปลง Action ให้เป็น Applescript ที่เทียบเท่ากันใน Automator ได้อย่างรวดเร็วฉันคิดว่าโดยการลากในลักษณะที่ยุ่งยาก ฉันเห็นสิ่งนี้มานานแล้ว แต่ตอนนี้ลืมไปแล้ว ฉันลองค้นหาแล้วหามันไม่เจอ


อาจเป็นเพราะมันเป็นไปไม่ได้ คำสั่ง AppleScript และการทำงานของ Automator นั้นแตกต่างกันไปบางแอพอาจสนับสนุนหนึ่งแอปอื่น ๆ ทั้งคู่ต้องทำงานซ้ำ ๆ แต่ต่างกัน
user14492

คำตอบ:


9

ในกรณีที่ทุกคนมีคำถามนี้ฉันพบว่ามันใช้ได้กับการกระทำที่บันทึกไว้เท่านั้น

หลังจากที่คุณบันทึกการคลิกหรือการกระทำอื่น ๆ ใน Automator พวกเขาจะปรากฏในการดำเนินการ "Watch Me Do" จากนั้นคุณสามารถคลิกและลากแต่ละการกระทำออกจากการกระทำนั้นแล้วปล่อยเมื่อเครื่องหมาย + ปรากฏขึ้น Automator จะเพิ่มการดำเนินการ "Run AppleScript" ด้วย AppleScript ที่ส่งการคลิกและการกดปุ่มเดียวกันไปยังระบบเหตุการณ์

คุณสามารถคัดลอกการกระทำที่คุณต้องการสลับไปที่ AppleScript Editor และวางเพื่อรับรหัสเดียวกัน

ตัวอย่าง: เหตุการณ์ "คลิก Skype ใน Dock" แปลงเป็น AppleScript ต่อไปนี้:

on run {input, parameters}
    -- Click “Skype” in the Dock.
    delay 7.872251
    set timeoutSeconds to 2.000000
    set uiScript to "click UI Element \"Skype\" of list 1 of application process \"Dock\""
    my doWithTimeout( uiScript, timeoutSeconds )
    return input
end run

on doWithTimeout(uiScript, timeoutSeconds)
    set endDate to (current date) + timeoutSeconds
    repeat
        try
            run script "tell application \"System Events\"
" & uiScript & "
end tell"
            exit repeat
        on error errorMessage
            if ((current date) > endDate) then
                error "Can not " & uiScript
            end if
        end try
    end repeat
end doWithTimeout

วิธีการแปลงเหตุการณ์ที่บันทึกใน Automator:

Click and event and drag to create a new action Automator converts the event to Applescript


ฉันลงคะแนนในข้อดีของวิธีที่คุณรวบรวมรหัส AppleScript จากการดำเนินการ Watch Me Do แต่คุณกล่าวว่า " คุณสามารถคัดลอกการกระทำที่คุณต้องการสลับไปที่ AppleScript Editor และวางเพื่อรับรหัสเดียวกัน "และในขณะนี้อาจเป็นจริงในบางกรณีอย่างไรก็ตามมันไม่เป็นความจริงในบางกรณีเนื่องจาก AppleScript Code ไม่สามารถคัดลอกจาก Automator ในลักษณะนี้ไปยัง AppleScript Editor และทำงานได้สำเร็จโดยไม่ต้องแก้ไขโค้ด
user3439894

ขอบคุณที่กลับมาแบ่งปันความรู้
Walrus the Cat

0

มันเป็นไปไม่ได้. คุณสามารถทำการกระทำที่คล้ายกันใน applescript แต่ไม่มีวิธีแปลงสคริปต์ automator ที่มีอยู่เป็น applescript


โดยทั่วไปอาจเป็นจริง (ฉันไม่รู้) แต่เป็นไปได้สำหรับการกระทำที่บันทึกไว้ ("Watch Me Do") - ดูโซลูชันของฉันด้านล่าง
Nate

0

สร้างไฟล์ Automator ของคุณเป็นประเภท "แอปพลิเคชัน"

บอก AppleScript ให้เรียกใช้แอป Automator ของคุณ

สิ่งที่ต้องการ:

open "/Users/george/AutomatorFiles/MyScript.app"

ใช้งานได้สำหรับฉัน!


มันมีประโยชน์เช่นกันแม้ว่าจะไม่ใช่สิ่งที่ฉันกำลังมองหาซึ่งก็คือการดูรหัสเพื่อให้ฉันสามารถเข้าใจและนำมาใช้ซ้ำได้
Nate
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.