จับภาพหน้าจอของหน้าต่างบน Mac โดยไม่ต้องใช้ Spacebar แล้วคลิกเมาส์


2

ฉันต้องการถ่ายภาพหน้าจอของหน้าต่างบนเครื่อง mac

ฉันกำลังใช้shift+ cmd+ 4แล้วspaceคลิกเมาส์

กระบวนการนี้น่าอึดอัดใจมากคุณต้องทำตามลำดับนั้นหรือคุณจะต้องทำซ้ำอีกครั้ง ..

ฉันต้องการแป้นพิมพ์ลัดง่ายที่จะทำสิ่งที่shift+ +cmd3

ฉันต้องการใช้ช็อตคัตง่ายๆในการถ่ายภาพหน้าจอของหน้าต่าง

มันเป็นไปได้?

คำตอบ:


2

นี่คือโซลูชันของฉันซึ่งฉันตั้งชื่อว่าWindow-Snapshotซึ่งอยู่บนพื้นฐานของAppleScript ที่เรียบง่ายไม่ว่าจะบันทึกเป็นแอปพลิเคชันจากภายในตัวแก้ไขสคริปต์และหรือใช้เป็นส่วนหนึ่งของAutomator Serviceโดยกำหนดแป้นพิมพ์ลัด แม้ว่าจะเป็นบริการแต่ใช้ยูทิลิตี้ของบุคคลที่สามที่ใช้ในโซลูชัน * คลิกเมาส์คลิกเดียวของแอปพลิเคชันWindow-Snapshot AppleScriptโดยมีรายละเอียดด้านล่าง

  • หมายเหตุ: Automatorใช้เป็นบริการถูกด้วยตัวเองเป็นคุณลักษณะที่ดี แต่เมื่อใช้กับแป้นพิมพ์ลัดทั่วโลกก็อาจเป็นปัญหาได้เว้นแต่แป้นพิมพ์ลัดใช้เป็นทั้งที่ใช้งานได้ และ ไม่ได้อยู่ในการใช้งานอื่น ๆในOS Xหรือเปิดการใช้งานที่มีหน้าต่าง จะถูกจับ นี่คือเหตุผลที่ฉันได้รวมการใช้AppleScriptทั้งเป็นแอปพลิเคชัน AppleScriptและหรือบริการอัตโนมัติด้วยการกำหนดแป้นพิมพ์ลัด ในขณะที่แป้นพิมพ์ลัดบางตัวได้รับมอบหมายให้บริการอัตโนมัติจะใช้งานได้กับหน้าต่างแอปพลิเคชันส่วนใหญ่อย่างไรก็ตามมันอาจใช้ไม่ได้กับบางหน้าต่างแม้ว่าแป้นพิมพ์ลัดนั้นจะไม่ถูกกำหนดให้กับแอปพลิเคชันของหน้าต่างที่ถูกจับ ในกรณีเช่นนี้แอปพลิเคชันWindow-Snapshot AppleScriptสามารถใช้บริการ Automator Serviceได้

เป็นแอพพลิเคชั่น AppleScript

สามารถตั้งค่าให้เป็นโซลูชันคลิกเมาส์สองรายการ ( ค่าเริ่มต้น ) หรือโซลูชันคลิกเมาส์หนึ่งรายการ

  • * หมายเหตุ: ในฐานะที่เป็นหนึ่งในวิธีการแก้ปัญหา * * * * คลิกเมาส์มันต้องใช้สาธารณูปโภคของบุคคลที่สามเรียกว่าCLICLICK เท่าที่ฉันรู้ไม่มีเหตุการณ์การใช้เมาส์ / เมาส์ซ้ายโดยตรงในAppleScriptและการใช้ยูทิลิตี้ของบุคคลที่สามหรือการใช้รหัสเพิ่มเติม หรือบุคคลที่สาม

ในฐานะที่เป็นโซลูชันคลิกเมาส์สองทางAppleScriptมันถูกบันทึกเป็นแอปพลิเคชันฉันบันทึกเป็นWindow-Snapshotในแอปพลิเคชันจากนั้นวางลงในDockโดยการลากและวางกลุ่มแอปพลิเคชันลงบนDockที่ฉันต้องการ

  • สิ่งที่ผมชอบเกี่ยวกับการแก้ปัญหาสองคลิกเมาส์คือเมื่อกระเบื้อง Dockของหน้าต่างภาพรวมแอพลิเคชันที่มีการคลิกก็แท้จริงเหมือนฉันได้กดด้วยตนเองshift- command- 4จากนั้นSpace barบนแป้นพิมพ์และตอนนี้สิ่งที่ผมต้องทำคือเมาส์มากกว่าเป้าหมาย หน้าต่างฉันต้องการที่จะจับภาพและจากนั้นคลิกเมาส์มัน ดังนั้นวิธีการแก้ปัญหาการคลิกเมาส์สองครั้ง ! วิธีนี้อนุญาตให้กดปุ่มescเพื่อยกเลิกเช่นเดียวกับแป้นพิมพ์ลัดที่กดด้วยตนเองจะมี นอกจากนี้ยังไม่ต้องพึ่งพาการใช้ยูทิลิตี้ของบุคคลที่สามและที่สองdelayคำสั่งเป็นตัวจับเวลาเพื่อให้การวางตำแหน่งตัวชี้เมาส์ไปก่อนเวลามันออกมาโดยอัตโนมัติและจะใช้เวลาภาพรวมที่ใช้ในหนึ่ง * สารละลายคลิกเมาส์ ด้วยตัวเองโซลูชันการคลิกเมาส์สองทางเป็นทางออกที่ง่ายที่สุดที่นำเสนอในที่นี้

ในฐานะที่เป็นหนึ่งในวิธีการแก้ปัญหา * * * * คลิกเมาส์AppleScriptจะถูกบันทึกเป็นใบสมัครและยูทิลิตี้ที่สามบุคคลCLICLICKจะถูกเพิ่มมัดใบสมัครและรหัสที่สอดคล้องกันคือ uncommented ในสคริปต์

  • หมายเหตุ: โซลูชัน * mouse-clickใช้delayคำสั่งที่สองเพื่อให้เวลาในการวางตำแหน่งตัวชี้เมาส์ที่ใดก็ได้เหนือหน้าต่างเป้าหมายที่จะจับภาพและไม่สำคัญว่าหน้าต่างนั้นจะเป็นหน้าต่างด้านบนสุดหรือไม่เมื่อdelayคำสั่งที่สองหมดเวลาที่ว่าเมาส์จะอยู่เหนือหน้าต่างใด จับสามารถยกเลิกได้โดยการกดescที่สำคัญก่อนที่สองdelayคำสั่งครั้งจาก

เป็นบริการ Automator พร้อมแป้นพิมพ์ลัด

ในฐานะที่เป็นบริการอัตโนมัติมันถูกสร้างขึ้นโดยใช้รหัสApplesScriptแก้ไขเล็กน้อยและแป้นพิมพ์ลัดได้รับการกำหนดให้กับบริการใน: การตั้งค่าระบบ> แป้นพิมพ์ลัด> บริการ

  • หมายเหตุ: แป้นพิมพ์ลัดที่ฉันกำหนดคือshift- command- 5หรือ⇧⌘5ซึ่งดูเหมือนว่าจะใช้ตรรกะและหน้าต่างใดที่เมาส์วางอยู่เหนือคือหน้าต่างที่จะจับภาพสแนปชอต หน้าต่างไม่จำเป็นต้องปรากฏให้เห็นอย่างสมบูรณ์เพื่อจับภาพหรือเป็นหน้าต่างที่อยู่ด้านบนสุด

รหัส AppleScript ของ Window-Snapshot

tell application "System Events"

    (* Note: If used as the default two mouse-click solution then use as is, nothing else needs to be done. *)

    keystroke "$" using {command down}
    delay 0.25
    keystroke space

    (* Note: If using as the one mouse-click solution or Automator Service, uncomment the 
    two lines below having double-dashes in front by removing the double-dashes. 
    Also when using as the one mouse-click solution, set a value on the 'delay' command 
    below to an appropriate value which allows you the time necessary to move the mouse  
    over the target window before that delay command times out and the snapshot is taken.
    The default of '1.5' is in this use case is a somewhat arbitrary value, set it to suite.

    Note: When using as an Automator Service set the 'delay' command below to '0.25', 
    the same as in the first 'delay' command. *)

    -- delay 1.5
    -- do shell script "/Applications/Window-Snapshot.app/Contents/Resources/cliclick c:."

end tell
  • หมายเหตุ: ตามที่คุณเห็นว่ามี0.25ค่าที่สองdelay 0.25ในdelayคำสั่งแรกการหน่วงเวลาสั้น ๆ นี้เป็นสิ่งจำเป็นเนื่องจากจะต้องมีการหน่วงเวลาระหว่างสองkeystrokeคำสั่ง หากใช้โซลูชันคลิกเมาส์เพียงปุ่มเดียวdelayคำสั่งที่สองจะต้องเป็นสิ่งที่สมจริงกว่า ตั้งค่าที่ช่วยให้คุณมีเวลาที่จำเป็นในการเลื่อนเมาส์ไปที่หน้าต่างเป้าหมายก่อนที่คำสั่งหน่วงเวลาจะหมดอายุ1.5เป็นต้น

การสร้างแอปพลิเคชัน Window-Snapshot

  1. เปิดตัวแก้ไขสคริปต์ (หรือตัวแก้ไข AppleScriptถ้ามี)

  2. คัดลอกและวางหน้าต่าง Snapshot AppleScript รหัสจากด้านบนลงไปในชื่อหน้าต่างเอกสารแล้วกดคอมไพล์

  3. กดSเพื่อบันทึกและตั้งค่ารูปแบบไฟล์:เป็นแอปพลิเคชันบันทึกไว้ในโฟลเดอร์แอปพลิเคชัน

  4. มอบไอคอนที่กำหนดเองให้แอปพลิเคชันWindow-Snapshot ฉันใช้ไอคอนกล้องที่พบในไอคอนค้นหาและใช้ไอคอนนี้โดยเฉพาะการคลิกปุ่ม 'ดาวน์โหลด ICNS' ฉันเปิดไฟล์ "scanners_cameras.icns" ที่ดาวน์โหลดมาแล้วในตัวอย่างและคัดลอกแล้ววางลงในแผ่นรับข้อมูลของWindow-Snapshot.appโดยเลือกไอคอนเล็ก ๆ ที่มุมบนซ้ายของแผ่นข้อมูล Window-Snapshot (ในการประยุกต์ใช้งานเลือกWindow-Snapshot.appและกด: I)

  5. ตอนนี้ลากและวางหน้าต่าง Snapshotกำปพลิเคชันจากการประยุกต์ใช้งานโฟลเดอร์บนDockที่คุณอยากให้มันเป็น

ตอนนี้พร้อมใช้งานแล้วคลิกที่Tile Window-Snapshot Dockแล้วคลิกหน้าต่างเป้าหมายที่ต้องการบันทึก

  • หมายเหตุ: สแนปชอตจะได้รับการบันทึกด้วยการตั้งชื่อและการตั้งค่าเดียวกันกับที่กด⇧⌘3เพียงบันทึกเฉพาะหน้าต่างเป้าหมาย เริ่มต้นอยู่บนเดสก์ท็โดยใช้Screen Shot yyyy-mm-dd at hh.mm.ss AM|PMหรือถ้าเริ่มต้นมีการเปลี่ยนแปลงก็จะอย่างไรก็ตามมีการตั้งค่าในขณะนี้

การตั้งค่า Window-Snapshot.app ให้เป็นโซลูชันคลิกเมาส์หนึ่งครั้งโดยใช้ CLICLICK

  1. ดาวน์โหลดCLICLICKและติดตั้งไฟล์ cliclick.dmg และวางสำเนาของcliclickไฟล์ปฏิบัติการภายในบันเดิลแอปพลิเคชันWindow-Snapshot.appที่พา ธ ที่แสดงในสคริปต์ Ctrl คลิกหน้าต่างภาพรวมแอปเลือกShow Package Contentsและนำทางไปยังทรัพยากรโฟลเดอร์วางสำเนาของการcliclickปฏิบัติการมี

  2. ยกเลิกการคอมเม้นท์สองบรรทัดด้านล่าง(* Note: If using as the one mouse-click solution or Automator Service,ความคิดเห็นโดยลบเครื่องหมายขีดคั่นคู่--หน้ารหัส

  3. บันทึกการเปลี่ยนแปลงที่เกิดขึ้นกับAppleScript

ตอนนี้พร้อมที่จะใช้เป็นโซลูชันคลิกเมาส์เพียงปุ่มเดียว

การสร้างบริการอัตโนมัติของ Window-Snapshot

  1. เปิดอัตโนมัติเลือกบริการ

  2. ตั้งค่าบริการได้รับเลือกในการป้อนข้อมูลไม่ออกในโปรแกรมใด ๆที่เป็นอยู่ เพิ่มRun AppleScriptแล้วคัดลอกและวางรหัสWindow-Snapshot AppleScriptข้างต้นลงในหน้าต่างRun AppleScriptแทนที่รหัสเริ่มต้น

  3. uncomment สองบรรทัดด้านล่าง(* Note: If using as the one mouse-click solution or Automator Service,ความคิดเห็นโดยการเอาคู่ขีดคั่น--ในด้านหน้าของรหัสและการตั้งค่าของสองคำสั่งdelay0.25

  4. บันทึกบริการกดSตั้งชื่อมันเป็นหน้าต่างภาพรวม

  5. เปิดการตั้งค่าระบบและไปที่คีย์บอร์ด> แป้นพิมพ์ลัด> บริการและเลื่อนลงไปด้านล่างจากนั้นภายใต้ทั่วไปคุณจะเห็นWindow-Snapshotแล้วเลือก ตอนนี้คลิกที่เพิ่มทางลัดแล้วกดshift- command- 5หรือ: ⇧⌘5

ตอนนี้พร้อมที่จะใช้เป็นบริการโดยใช้แป้นพิมพ์ลัด : ⇧⌘5

  • หมายเหตุ: หากคุณต้องการใช้เป็นบริการคุณจะต้องปรับชื่อพา ธ เป็นcliclickไฟล์เรียกใช้งานได้ทุกที่ที่คุณติดตั้ง คุณสามารถลองวางไว้ในมัดบริการได้เช่น/Users/$USER/Library/Services/Window-Snapshot.workflow/Contentsกันแม้ว่าฉันจะไม่ได้ลองทำสิ่งนี้เพราะฉันชอบที่จะให้มันเป็นทั้งแอปพลิเคชันAppleScript ที่ใช้มันเป็นโซลูชันคลิกเมาส์สองตัวและบริการอัตโนมัติด้วยการกำหนดแป้นพิมพ์ลัด

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


มันทำงานได้อย่างสมบูรณ์⇧⌘5และประหยัดทางออกของคุณจะช่วยคนจำนวนมาก ขอบคุณ.
เปาโล

@ พอลดีใจที่คุณสามารถใช้มัน ฉันใช้เวอร์ชั่นอื่น ของแอป AppleScript และไม่ได้รวมรหัสที่นี่เนื่องจากใช้ปฏิบัติการอื่นของบุคคลที่สาม ไฟล์เรียกทำงานที่สองถูกเรียกใช้checkModifierKeysและทำตามชื่อที่มีความหมายและฉันมีรหัสแล้วดังนั้นถ้าฉันกดปุ่ม Shift เมื่อฉันคลิกที่ Tile Tile มันจะสลับdisable-shadowคีย์ในไฟล์. plist ของ screencapture ดังนั้นฉันจึงสามารถถ่ายภาพได้ . executables ทั้งสองที่ฉันสร้างขึ้นจากซอร์สโค้ดที่ผู้เขียนให้แม้ว่าทั้งคู่จะจัดเตรียมไบนารีไว้ หากคุณสนใจแจ้งให้เราทราบฉันจะอัปเดตคำตอบ
user3439894

1

วิธีหนึ่งที่จะใช้screencaptureคำสั่ง:

screencapture -w window.png

window.pngซึ่งจะจับภาพหน้าต่างแรกที่คุณคลิกหลังจากที่คุณเรียกใช้คำสั่งและบันทึกเป็น

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

ฉันไม่ทราบวิธีง่ายๆในการจับภาพหน้าต่างด้านหน้าเสมอไป ... บางทีกูรูของ AppleScript สามารถช่วยเรื่องนี้ได้?


window.png บันทึกที่ไหน ด้วยวิธีการที่ใช้ terminal; ยังคงต้องคลิกเมาส์มันทำให้มันง่ายขึ้นและฉันจะดูอัตโนมัติและอัลเฟรดขอบคุณ
เปาโล

ด้วยคำสั่งข้างต้นมันจะบันทึกลงในโฟลเดอร์ที่คุณรันคำสั่ง หากคุณต้องการบันทึกบนเดสก์ท็อปเสมอคุณสามารถระบุตำแหน่งนั้นเป็นส่วนหนึ่งของชื่อไฟล์เช่น 'screencapture -w ~ / Desktop / window.png' ใช่ต้องขอบคุณการคลิกเมาส์ยังคง ... แม้ว่าจะไม่สามารถหาวิธีแก้ไขได้ในตอนนี้
calum_b

0

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

ป้อนคำอธิบายรูปภาพที่นี่

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