ฉันจะใช้ AppleScript เพื่อพิมพ์ข้อความลงในหน้าต่างใหม่ได้อย่างไร


0

ฉันพยายามสร้าง applescript ที่จะเขียนตัวเองลงในหน้าต่างใหม่ของ Applescript Editor แต่ฉันไม่สามารถทราบได้ว่ามันจะวางอย่างไรกับใบเสนอราคา รหัสที่ฉันมีตอนนี้คือ

tell application "System Events"
    keystroke "n" using command down
    keystroke "tell application (System Events) keystroke (n) using command down end tell"
end tell

ฉันลบคำตอบดั้งเดิมของฉันก่อนหน้านี้วันนี้ แต่ตอนนี้ได้แก้ไขและลบมัน หวังว่ามันจะช่วย
user3439894

คุณต้องชัดเจนอย่างชัดเจนและเฉพาะเจาะจงกับสิ่งที่คุณพยายามทำที่นี่เพราะคุณสามารถเห็นคำตอบสองคำที่ให้มาเพื่อดูคำถามของคุณจากสองทิศทางที่ไม่เกี่ยวข้องทั้งหมด
user3439894

คำตอบ:


1

เครื่องหมายคำพูดที่มีความหมายว่าเป็นตัวอักษรจะต้องถูกหลบหนีด้วยแบ็กสแลชและแทนที่จะใช้keystrokeให้ใช้ตัวอย่างต่อไปนี้เพื่อสร้างเอกสาร AppleScript ใหม่ที่มีรหัสที่ต้องการ:

tell application "AppleScript Editor"
    set text of (make new document) to "tell application \"System Events\"\n\tkeystroke \"n\" using command down\nend tell"
end tell

คัดลอกและวางตัวอย่างรหัสด้านบนลงในเอกสาร AppleScript ใหม่แล้วกดปุ่มรวบรวม จากนั้นจะมีลักษณะดังนี้:

tell application "AppleScript Editor"
    set text of (make new document) to "tell application \"System Events\"
    keystroke \"n\" using command down
end tell"
end tell

จากนั้นกดปุ่ม Run และมันจะสร้างเอกสาร AppleScript ใหม่ที่มีต่อไปนี้:

tell application "System Events"
    keystroke "n" using command down
end tell

ซึ่งถ้าคุณกดปุ่ม Run ของเอกสารใหม่นี้มันจะสร้างเอกสาร AppleScript ใหม่ที่ว่างเปล่า

ทั้งนี้ขึ้นอยู่กับรุ่นของระบบปฏิบัติการ OS X / MacOS บรรทัดอาจจะtell application "AppleScript Editor" tell application "Script Editor"คุณยังสามารถวางโค้ดตัวอย่างตามที่เป็นอยู่ในตัวแก้ไขสคริปต์และจะลบAppleส่วนจากAppleScriptเพื่อแสดงโดยtell application "Script Editor"อัตโนมัติ


แม้ว่าคำตอบของคุณอาจทำงานได้อ่านคำถามอีกครั้งผมประทับใจเป้าหมายที่สำคัญของสหกรณ์เป็น AppleScript ซึ่งซ้ำตัวเอง: กควิน ฉันไม่ใช่นักคณิตศาสตร์หรือผู้เชี่ยวชาญด้านวิทยาการคอมพิวเตอร์เชิงทฤษฎี แต่ฉันคิดว่ามีภาษาโปรแกรมที่สามารถทำสิ่งนี้ได้และคนอื่นไม่สามารถทำได้ AppleScript อาจเป็นของหลัง
klanomath

@ klanomath, OP กล่าวสองสิ่ง " ฉันพยายามสร้าง applescript ที่จะเขียนตัวเองลงในหน้าต่างใหม่ของ Applescript Editor " และ " แต่ฉันไม่สามารถคิดได้ว่ามันจะวางอย่างไรกับใบเสนอราคา " ซึ่งกล่าวถึงการจำลองตัวเองหรือพารามิเตอร์อื่น ๆ ของวิธี / สิ่งที่พยายามจะประสบความสำเร็จ ดังนั้นจนกว่าความคิดเห็น OP จะมีใครคาดเดาสิ่งที่ตั้งใจจริงคือ
user3439894

0

คุณอาจจะมองหา AppleScript ควิน ฉันไม่ใช่โปรแกรมเมอร์หรือนักวิทยาศาสตร์คอมพิวเตอร์ดังนั้นฉันจึงไม่สามารถอธิบายวิธีการเขียนโค้ดที่สร้างตัวเองได้ เพิ่มเติมฉันไม่ทราบว่าภาษาสคริปต์ (ระดับสูง) เช่น AppleScript มีประสิทธิภาพเพียงพอที่จะสร้าง quines โดยพลการ

ฉันได้พบตัวอย่างของการทำงาน AppleScript เพียงสองตัวอย่างเท่านั้นซึ่งอาจช่วยคุณสร้างของคุณเอง - เฉพาะคนแรกที่สร้าง AppleScript ใหม่:

set d to "on string_from_ASCII_numbers(x)
    set s to ASCII character of item 1 of x
    repeat with i from 2 to number of items in x
        set s to s & (ASCII character of item i of x)
    end repeat
end string_from_ASCII_numbers
set set_d_to to {115, 101, 116, 32, 100, 32, 116, 111, 32}
set scriptEditor to {83, 99, 114, 105, 112, 116, 32, 69, 100, 105, 116, 111, 114}
set quine to string_from_ASCII_numbers(set_d_to) & quote & d & quote & return & d
tell application string_from_ASCII_numbers(scriptEditor) to make new document with properties {contents:quine}"
on string_from_ASCII_numbers(x)
    set s to ASCII character of item 1 of x
    repeat with i from 2 to number of items in x
        set s to s & (ASCII character of item i of x)
    end repeat
end string_from_ASCII_numbers
set set_d_to to {115, 101, 116, 32, 100, 32, 116, 111, 32}
set scriptEditor to {83, 99, 114, 105, 112, 116, 32, 69, 100, 105, 116, 111, 114}
set quine to string_from_ASCII_numbers(set_d_to) & quote & d & quote & return & d
tell application string_from_ASCII_numbers(scriptEditor) to make new document with properties {contents:quine}

ลิงค์ดาวน์โหลด: quine.applescript.zip

set s to "on run {s}
  set pre to «data utxt0073006500740020007300200074006f00200022» as text
  set post to «data utxt0022000a00720075006e0020007300630072006900700074002000730020007700690074006800200070006100720061006d006500740065007200730020007b0073007d»
  pre & s & post
end run"
run script s with parameters {s}

ลิงค์ดาวน์โหลด: quine.scpt


อันที่สองไม่ค่อยทำอะไรมากเลยและอันแรกก็ล้มเหลวใน AppleScript Editor เพราะเห็นได้ชัดว่ามันเป็นรหัสสำหรับ Script Editor OP กล่าวว่า " หน้าต่างใหม่ของตัวแก้ไขแอปเปิ้ล " ไม่ใช่ " หน้าต่างใหม่ของตัวแก้ไขสคริปต์ "
user3439894

จะทำงานร่วมกับบรรณาธิการ AppleScript เทียบแก้ไขสคริปต์แทนที่ทั้งสองเส้นที่มีset scriptEditor to {83, 99, 114, 105, 112, 116, 32, 69, 100, 105, 116, 111, 114} set scriptEditor to {65, 112, 112, 108, 101, 83, 99, 114, 105, 112, 116, 32, 69, 100, 105, 116, 111, 114}
user3439894
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.