ต้องการความช่วยเหลือในการสร้าง Automator Service เพื่อทำงานที่คล้ายกันกับการถอนการติดตั้งส่วนที่เหลือ


1

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

สิ่งที่ฉันทำเพื่อหลีกเลี่ยงปัญหานี้คือการเรียกใช้ AppCleaner ตัวถอนการติดตั้งฟรีและลบทุกอย่างยกเว้นตัวแอปและข้อมูลใบอนุญาต มันใช้งานได้ดี แต่เมื่อความถี่นี้กลายเป็นสิ่งจำเป็นฉันก็อยากจะสร้างบางสิ่งที่ฉันสามารถเข้าถึงได้อย่างรวดเร็วเช่น Applescript ที่ฉันสามารถใส่ไว้ในแท่น หรือบริการ Automator ที่อยู่ในรายการเมนูตามบริบท

ฉันไม่รู้ Applescript ใด ๆ แต่ฉันพยายามทำให้เวิร์กโฟลว์อัตโนมัติ ขั้นตอนแรก "รับรายการค้นหาที่เลือก" หนึ่งมีตำแหน่งคงที่ที่สองอาจมีการเปลี่ยนแปลงฉันไม่แน่ใจ

~/Library/Saved Application State/com.fontlab.studio5.savedState

/var/db/BootCaches/34D6C504-2F5B-416F-9C91-0C9D019BF446/app.com.fontlab.studio5.playlist

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

ภาพหน้าจอ

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

ขอบคุณล่วงหน้า!

คำตอบ:


0

ฉันไม่ได้ติดตั้ง FontLab Studio แต่เพื่อจุดประสงค์ในการแก้ไขปัญหาของคุณภายใต้ OS X El Capitan 10.11.5 ฉันได้ทำสิ่งต่อไปนี้:

  • ในเทอร์มิที่/private/var/db/BootCachesใช้sudo, mkdirและtouchฉันสร้างไดเรกทอรีชื่อและไดเรกทอรีที่ไฟล์ชื่อ34D6C504-2F5B-416F-9C91-0C9D019BF446app.com.fontlab.studio5.playlist

  • ใน Finder ในโฟลเดอร์ Library ของ Home โฟลเดอร์> Application State Saved ฉันทำซ้ำโฟลเดอร์และเปลี่ยนชื่อสำเนาเป็น: "com.fontlab.studio5.savedState"

ในการทำเช่นนี้การจำลองแบบสถานที่เป้าหมายและไฟล์ที่มีสิทธิ์ที่เหมาะสมเพื่อทดสอบแอปพลิเคชัน AppleScript ต่อไปนี้

ในตัวแก้ไขสคริปต์ฉันใช้รหัสต่อไปนี้เพื่อสร้างรีเซ็ต FontLab Studio.app และบันทึกไว้ในโฟลเดอร์แอปพลิเคชันของ Macintosh HD จากนั้นลากไปยัง Dock เพื่อให้สามารถคลิกได้อย่างง่ายดาย


try
    do shell script "rm -r \"$HOME/Library/Saved Application State/com.fontlab.studio5.savedState\" /private/var/db/BootCaches/*/app.com.fontlab.studio5.playlist" with administrator privileges
end try

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

กล่องโต้ตอบรหัสผ่าน


หมายเหตุ:

  • เมื่อทดสอบโค้ดนี้แล้วฉันขอแนะนำให้คัดลอกและวางมันลงใน Script Editor จากนั้นให้บันทึกเป็นแอปพลิเคชันที่ชื่อที่คุณต้องการ

  • $HOMEกำลังถูกใช้เนื่องจาก~ข้อผิดพลาด can / will ใน AppleScript และหรือ Automator ขึ้นอยู่กับการใช้งานเฉพาะของมัน โดยปกติ~มีการขยายมูลค่าของตัวแปรสภาพแวดล้อมของHOMEและทำให้ฉันมักจะใช้$HOMEมากกว่า~ที่จะหลีกเลี่ยงความผิดพลาดที่จะสามารถ / จะสร้างในช่วงเวลาที่

  • การแทนค่าของ*for 34D6C504-2F5B-416F-9C91-0C9D019BF446คือ intensional เพื่อรองรับการเปลี่ยนชื่อที่เป็นไปได้

  • tryคำสั่งที่ใช้เพื่อหลีกเลี่ยงข้อผิดพลาดถ้าคุณเรียกใช้แอพพลิเครีเซ็ต FontLab สตูดิโออีกครั้งก่อนที่ไฟล์เป้าหมายที่ถูกสร้างและหรือถ้าหนึ่งหรืออื่น ๆ ไม่อยู่ก็ยังลบอื่น ๆ

  • /varเป็นลิงก์สัญลักษณ์/private/varแต่ฉันชอบใช้เส้นทางสัมบูรณ์เหนือ symlink ในกรณีเช่นนี้

  • การใช้rmคำสั่งเป็นอันตรายโดยเนื้อแท้โดยเฉพาะอย่างยิ่งเมื่อใช้กับสิทธิ์ยกระดับและหรือสัญลักษณ์ตัวแทนดังนั้นท้ายที่สุดต้องแน่ใจว่าไม่มีการพิมพ์ผิดในบรรทัดคำสั่งของคุณและเป้าหมายเป็นเป้าหมายที่ต้องการ นี่คือเหตุผลที่ฉันทดสอบโค้ดก่อนโพสต์ คุณสามารถนำหน้าrmคำสั่งด้วยechoเช่นecho rm ...จากนั้นตรวจสอบผลลัพธ์ในบานหน้าต่างเหตุการณ์ / ผลลัพธ์ของตัวแก้ไขสคริปต์แล้วลบออกechoก่อนบันทึกสคริปต์


รูปภาพด้านล่างเพื่อแสดงการเน้นข้อความและเพื่อดูบรรทัดคำสั่งแบบเต็มของdo shell scriptคำสั่ง

หน้าต่างตัวแก้ไขสคริปต์


หากคุณเป็นผู้ใช้คอมพิวเตอร์เพียงคนเดียวและคุณไม่จำเป็นต้องพิมพ์รหัสผ่านเมื่อแอพรีเซ็ต FontLab Studio ทำงานอยู่ให้แก้ไขdo shell scriptคำสั่งโดยใช้ไวยากรณ์ต่อไปนี้:

do shell script "command" user name "me" password "mypassword" with administrator privileges

ตัวอย่าง:

do shell script "rm -r \"$HOME/Library/Saved Application State/com.fontlab.studio5.savedState\" /private/var/db/BootCaches/*/app.com.fontlab.studio5.playlist" user name "me" password "mypassword" with administrator privileges

โปรดทราบว่าเมื่อรหัสของสคริปต์ถูกบันทึกค่าuser nameและpasswordจะถูกบันทึกเป็นข้อความที่อ่านได้ภายในไฟล์ไบนารี "main.script" ของชุดแอพพลิเคชัน ดังนั้นให้ใช้วิธีการนี้ในความเสี่ยงของคุณเองเนื่องจากถือว่าเป็นความเสี่ยงด้านความปลอดภัยในการจัดเก็บชื่อผู้ใช้และรหัสผ่านที่จัดเก็บในลักษณะที่ไม่เข้ารหัส


ขอบคุณมากค่ะ ฉันขอโทษสำหรับคำถามมือใหม่ ฉันรู้ว่าคุณบอกว่าเครื่องหมายดอกจันเป็นความตั้งใจ แต่ฉันไม่รู้เกี่ยวกับการเขียนโปรแกรมมากพอที่จะรู้ว่าทำไม / วิธีที่จะรองรับการเปลี่ยนเส้นทาง - ไม่ใช่ว่าฉันต้องเข้าใจฉันแค่ต้องการยืนยันว่าฉันเข้าใจถูกต้องและมันจะ . นอกจากนี้ฉันเป็นผู้ใช้เพียงคนเดียวในคอมพิวเตอร์ของฉันและฉันอยู่คนเดียว แต่ไม่ต้องพิมพ์รหัสผ่านกับสิ่งที่รวดเร็วและง่ายดายเช่นนี้ฉันสามารถทำงานได้ด้วยการคลิกเพียงครั้งเดียวจากท่าเรือโดยเฉพาะเพื่อความปลอดภัย
Moscarda

@Moscarda โดยไม่ต้องลงรายละเอียดด้านเทคนิคสิ่งที่เกิดขึ้นคือถ้าไฟล์app.com.fontlab.studio5.playlistอยู่ในเส้นทาง/private/var/db/BootCaches/*/ที่*มีไดเรกทอรีอยู่ในไดเรกทอรีBootCacheที่มีapp.com อยู่ด้วย .fontlab.studio5.playlistไฟล์จากนั้นจะพบไฟล์และถูกลบ เครื่องหมายดอกจันเป็นอักขระตัวแทนที่สามารถใช้แทนจำนวนอักขระใด ๆ (รวมถึงศูนย์ในคำอื่น ๆ อักขระศูนย์หรือมากกว่า) และในกรณีนี้จะไม่เป็นอันตรายอย่างสมบูรณ์และปลอดภัยที่จะใช้ตามที่เป็นอยู่
user3439894
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.