ฉันจะสร้างคำแจ้งเตือน Growl สำหรับ FCE ได้อย่างไร


0

ฉันพบสคริปต์นี้ทางออนไลน์ที่ใดที่หนึ่งและฉันพยายามทำให้มันตรวจสอบอย่างต่อเนื่องเพื่อดูว่า Final Cut Express แสดงผลหรือไม่และเมื่อเสร็จสิ้นการเรนเดอร์แสดงข้อความแจ้งเตือน Growl

แก้ไข: คำถามของฉันคือ: ฉันจะทำให้สคริปต์ตรวจสอบอย่างต่อเนื่องเพื่อดูว่า FCE แสดงผลและเมื่อเสร็จสิ้นการแสดงผลแสดงการแจ้งเตือน? สคริปต์ทำงานเพื่อแสดงการแจ้งเตือนตอนนี้ฉันจะทำให้มันทำงานได้อย่างไร

แก้ไข: ฉันพยายามใช้ตัวจัดการที่ไม่ได้ใช้งาน มันใช้งานไม่ได้ แต่บางทีฉันไม่ได้ใช้งานตัวจัดการที่ไม่ทำงาน

นี่คือรหัสสำหรับสคริปต์:

tell application "System Events"
    tell application process "Final Cut Express HD"
        set windowList to get name of every window
    end tell
end tell


if windowList contains missing value then
end if

tell application "GrowlHelperApp" -- ** the daemon that is behind the scenes
    -- Make a list of all the notification types that this script will ever send: 
    -- ** They really mean "ever" or you'll have to reregister.
    set the allNotificationsList to {"Render Complete"}
    -- , "Another Test Notification"} 
    --** Enable another notification

    -- Make a list of the notifications that will be enabled by default. 
    -- ** We'll see shortly that a note must be enabled and the user can disable it.
    -- Notifications not enabled by default can be enabled later in the 'Applications' tab of the growl prefpane.
    set the enabledNotificationsList to {"Render Complete"} -- ** just one turned on, the other not.

    -- Register our script with growl.
    -- You can optionally (as here) set a default icon for this script's notifications.
    -- ** Theoretically, you only have to register once, but there is absolutely no harm in doing
    -- it every time the script runs, i.e., leaving this line in your script.
    register as application "Final Cut Render Complete Script" all notifications allNotificationsList default notifications enabledNotificationsList icon of application "Final Cut Express HD"

    --  Send a Notification...
    -- This one will appear because it was enabled by default.
    notify with name "Render Complete" title "Render Complete" description "Your Render has Finished." application name "Final Cut Render Complete Script"

    -- This one will not appear -- it wasn't enabled by default so the user has to turn it on in the 'Applications' tab of the Growl prefpane to see it.
    -- Take out the comments to enable it.
    --notify with name "Another Test Notification" title "Another Test Notification  " description "Alas  you won't see me until you enable me yourself..." application name "Final Cut Render Complete Script"
end tell

ดีใจที่ฉันสามารถช่วยได้ตั้งแต่ฉันเพิ่งได้รับสิทธิ์ในการติดประกาศโพสต์ใหม่
Steve Moser

ใช่ ... ฉันยังสร้างแท็กไม่ได้ :-(
daviesgeek

คำถามคืออะไร? สคริปต์ใช้งานไม่ได้หรือไม่
Joel Spolsky

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

1
ความคิดเห็นที่ 3 ในหัวข้อนี้ใน cocoaforge (โดย "stib") ( cocoaforge.com/viewtopic.php?f=6&t=20460 ) มีการเปลี่ยนแปลงของสคริปต์ของคุณซึ่งใช้ตัวจัดการที่ไม่ทำงาน เขาแสดงความคิดเห็นสคริปต์เพื่ออธิบายว่าทำไมแต่ละส่วนถึงอยู่ตรงนั้นและทำอะไรอยู่ ถึงเวลาแล้วตั้งแต่ฉันใช้สคริปต์ของเขา แต่ถ้าฉันจำได้ถูกต้องมันทำงานได้ดีและมันค่อนข้างง่ายที่จะแก้ไขให้ทำงานกับแอพอื่น ๆ ส่วนใหญ่
joelseph

คำตอบ:


1

คุณบันทึกสคริปต์ด้วยตัวจัดการที่ไม่ได้ใช้งานเป็นไฟล์. app โดยเลือกช่องทำเครื่องหมาย "เปิดตลอด" ที่เลือกในกล่องโต้ตอบบันทึกหรือไม่

จำเป็นต้องใช้รหัสนี้ภายในตัวจัดการการไม่ใช้งานเพื่อให้ทำงาน "บนว่าง" มิฉะนั้นจะไม่ทำงานเลย บันทึกด้วยวิธีนั้นแล้วลองอีกครั้ง

คุณกำลังตรวจสอบ windowList สำหรับค่าที่หายไป ดูเหมือนว่าเป็นเงื่อนไขที่ไม่มีหน้าต่าง FCE เปิดอยู่ หากคุณต้องการให้บล็อกที่คุณใช้สคริปต์ Growl ทำงานนั้นควรอยู่ในคำสั่ง if หากไม่ใช่

นอกจากนี้ยังขึ้นอยู่กับว่าคุณกำลังใช้ Growl เวอร์ชันใดมันอาจตอบสนองต่อหนึ่งใน "Growl" (v1.3 +) หรือ "GrowlHelperApp" (v <1.3) แต่ไม่ใช่เวอร์ชันอื่น หากต้องการพิสูจน์สคริปต์ของคุณในอนาคตให้แทนที่

tell application "GrowlHelperApp

ด้วยดังต่อไปนี้:

tell application id "com.Growl.GrowlHelperApp"

Growl ทุกรุ่นตอบสนองต่อสิ่งนั้น

บล็อกของรหัสที่คุณมีทริกเกอร์คำรามดูเหมือนคุณปรับเปลี่ยนตัวอย่างของพวกเขาและจากความคิดเห็นของคุณมันฟังดูเหมือนว่าทำงานได้ดี

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