วิธีรักษาโฟกัสบนหน้าต่างแอพด้วย AppleScript


2

ฉันพยายามเปิดแอปพลิเคชันสแกนเนอร์โดยใช้ AppleScript ฉันเปิดใช้แอพ Printer แล้วและฉันรู้วิธีการส่งคำสั่ง keystroke แต่เมื่อหน้าต่าง Printer เปิดขึ้นจะไม่มีการโฟกัสใน Finder ดังนั้นการกดแป้นที่ฉันส่งจะไม่ทำงานจนกว่าฉันจะเปิดหน้าต่างเครื่องพิมพ์และอยู่ในโฟกัส ฉันจะตั้งค่าตัวค้นหาโฟกัสไปที่หน้าต่างของฉันเพื่อที่จะได้ยินการกดแป้นพิมพ์ได้อย่างไร

นี่คือรหัสของฉัน:

tell application "System Events"
  tell application "Canon MX510 series" to activate
  key code 20 using command down
end tell

การกดแป้นพิมพ์ไปที่ Finder หรือไปที่ซีรี่ส์ Canon MX510 หรือไม่
Arc676

คำตอบ:


1

ลองส่งคำสั่งเปิดใช้งานนอกระบบเหตุการณ์บอกว่าจะเป็นวิธีมาตรฐาน

tell application "Canon MX510 series" to activate
my testAppRunning()
tell application "System Events"    
    key code 20 using command down
end tell

on testAppRunning()
    set test to 0
    repeat while test = 0
        log test
        tell application "System Events" to set test to count (every process whose name is "Canon MX510 series")
        delay 2
        --/*we do this even if active because it doesn't naturally come to front*/
        try
            tell application "Canon MX510 series" to activate
        end try
        if (test > 0) then exit repeat
    end repeat
end testAppRunning

สิ่งนี้ไม่สร้างความแตกต่างให้ฉันเมื่อใช้ Google Chrome (ฉันไม่ได้ติดตั้ง "Cannon MX510 series") วางtell application "Google Chrome" to activateในtell application "System Events"บล็อกหรือไม่เปิดใช้งาน Chrome และส่งการกดแป้นพิมพ์
aglasser

มันใช้งานได้หรือไม่? ฉันคิดว่ามันอาจจะไม่จำเป็นต้องตรวจสอบเมื่อกระบวนการทำงาน .. สคริปต์ tweaked เพื่อให้แน่ใจว่าแอปทำงาน & ส่วนหน้า ...
Tetsujin

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