นี่เป็นประเด็นร้อน คุณทำการติดตั้งและดำเนินการต่างๆ ภายในเครื่องเสมือนโดยใช้ VirtualBox และคุณต้องการจับภาพหน้าจอที่บันทึกกิจกรรมของคุณ ในผลิตภัณฑ์เวอร์ชวลไลเซชันต่างๆ ของ VMware คุณลักษณะภาพหน้าจอมีอยู่ในเมนูระบบ ดังนั้นมันจึงเป็นเรื่องง่ายมากในการทำเช่นนั้น ใน VirtualBox ไม่มีตัวเลือกดังกล่าว ซึ่งหมายความว่าคุณต้องใช้การจับภาพหน้าจอโดยใช้ยูทิลิตี้โฮสต์ เช่น โปรแกรมจับภาพหน้าจอต่างๆ PrtScrn หรือ Alt+PrtScrn และคีย์คอมโบอื่นๆ ไม่ง่ายเสมอไป แต่ปัญหาที่ใหญ่ที่สุดคือ VirtualBox ถือว่าส่วนหนึ่งของอินเทอร์เฟซเป็นพื้นที่หน้าจอของระบบปฏิบัติการแขก และด้วยเหตุนี้ ภาพหน้าจอของคุณจึงไม่มีทางออกมาสะอาดหมดจด
เอาล่ะ ทั้งหมดนี้บอกเราว่าปัญหาคืออะไร คุณต้องการถ่ายภาพหน้าจอของระบบแขกจากภายนอก โดยไม่ต้องแชร์โฟลเดอร์และต้องคัดลอกและวางภาพหน้าจอจากภายในเครื่องเสมือนไปยังโฮสต์ คุณต้องการฟังก์ชันบางอย่างบนโฮสต์ของคุณที่จะจับภาพหน้าจอ ยกเว้นเส้นขอบ VirtualBox ด้านในที่ส่งผลต่อภาพหน้าจอ สามารถทำได้หรือไม่? คำตอบคือ ใช่ ตั้งแต่เวอร์ชัน 4.0 ปฏิบัติตามฉัน.
ภาพหน้าจอของวันนี้
ไม่ว่าคุณจะใช้ SnagIt, IrfanView, GIMP, Gnome Screenshot, KSnapshot หรือซอฟต์แวร์อื่นใด ผลลัพธ์ที่ได้จะเหมือนกันเสมอ คุณจะมีเส้นขอบบนและล่างที่น่ารำคาญซึ่งบอกทุกคนว่าคุณเพิ่งถ่ายภาพหน้าจอของหน้าต่าง VirtualBox ตัวอย่างเช่น สิ่งนี้:
นี่มันน่ารำคาญ คุณต้องการแค่สี่เหลี่ยมผืนผ้าสีน้ำเงิน ดังนั้นคุณต้องครอบตัดพื้นที่ด้วยตนเอง เสียเวลาอันมีค่าของคุณ ตอนนี้มีทางเลือกง่ายๆ แต่ต้องใช้บรรทัดคำสั่ง VirtualBox
วิธีแก้ไข:ใช้ VBoxManage จาก commandline
คุณลักษณะใหม่นี้มีให้ใช้งานในเวอร์ชัน 4.0 ขึ้นไป ดังนั้นจึงใช้ไม่ได้กับซอฟต์แวร์รุ่นเก่า สิ่งที่คุณต้องทำคือเรียกใช้คำสั่งต่อไปนี้:
VBoxManage controlvm <ชื่อ vm> screenshotpng <ชื่อไฟล์>.png
นั่นคือความมหัศจรรย์ทั้งหมด โดยที่
และนี่คือตัวอย่างที่ชัดเจนของ Ubuntu:
การเขียนสคริปต์
คุณยังคงทำให้ขั้นตอนนี้เป็นไปโดยอัตโนมัติได้บางส่วน ดังนั้นคุณจึงไม่จำเป็นต้องไปที่บรรทัดคำสั่งและเรียกใช้คำสั่งที่ต้องการด้วยตนเองเสมอไป ขั้นแรก คุณสามารถสร้างสคริปต์ที่ใช้คำสั่งสำหรับคุณ ฉันจะสาธิตการใช้ BASIC (BAT) บน Windows และ BASH บน Linux ประการที่สอง คุณสามารถใช้ตัวระบุทั่วไปสำหรับรูปภาพ ดังนั้นคุณไม่จำเป็นต้องป้อนชื่อด้วยตนเองทุกครั้ง การใช้ตัวแปรสภาพแวดล้อม RANDOM หรือการประทับเวลาดูเหมือนจะเป็นตัวเลือกที่ดี สุดท้าย คุณสามารถสร้างทางลัดบนเดสก์ท็อปหรือแผงแอปพลิเคชันของคุณ และเพิ่มคอมโบปุ่มลัดที่เรียกใช้ทางลัดหรือแอปพลิเคชัน
ตัวอย่าง Windows
การใช้บรรทัดคำสั่งใน Windows อาจฟังดูไม่เป็นธรรมชาติที่สุด แต่ก็ค่อนข้างง่าย เมื่อคุณเชี่ยวชาญพื้นฐาน [sic] แล้ว คุณสามารถไปยังการเขียนแบตช์ไฟล์ได้
คุณสามารถฮาร์ดโค้ดชื่อรูปภาพหรือใช้สิ่งที่จะสร้างสตริงที่ไม่ซ้ำกันในแต่ละครั้ง ไม่ว่าจะเป็นสตริงเวลาหรือวันที่หรือตัวเลขสุ่ม จากนั้น คุณสามารถเขียนแบตช์ไฟล์อย่างง่ายที่จะรันคำสั่งให้คุณ
ปิดเสียงสะท้อน
<พาธแบบเต็มไปยัง VBoxManage.exe" controlvm
โดยเฉพาะอย่างยิ่ง การใช้ตัวอย่างที่มีอยู่ Windows 8 แขกของเรา เราสร้างแบตช์ไฟล์สำหรับเครื่องเสมือนของเราที่จะต่อท้ายสตริงแบบสุ่มกับชื่อรูปภาพเพื่อทำให้ไม่ซ้ำกัน เราวางรูปภาพไว้ในไดเรกทอรี Share แต่คุณจะใช้อะไรก็ได้ตามต้องการ ในทำนองเดียวกัน ชื่อเครื่องเสมือนสามารถใช้เป็นค่าฮาร์ดโค้ดหรืออาร์กิวเมนต์อินพุตได้
ปิดเสียงสะท้อน
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm Windows-8 screenshotpng C:\Share\image-%random%.png
สุดท้าย คุณสามารถสร้างทางลัด วางไว้ที่ไหนสักแห่ง จากนั้นแก้ไขคุณสมบัติของมัน และเพิ่มคำสั่งผสมปุ่มทางลัดที่จะเรียกใช้ สิ่งนี้จะทำให้งานของคุณง่ายขึ้นและเร็วขึ้นมาก
ตัวอย่างลินุกซ์
บน Linux มันง่ายยิ่งขึ้นไปอีก
เราสามารถสร้างสคริปต์ง่าย ๆ ที่มีเพียงบรรทัดเดียว
#!/bin/bash
VBoxManage controlvm <ชื่อ vm> screenshotpng ~/image-`date +%s`.png
ทางออก 0
ผลลัพธ์ที่ได้จะเป็นรูปภาพในโฮมไดเร็กทอรีของคุณ โดยนับวินาทีที่ผ่านไปตั้งแต่ปี 1970 เป็นตัวเลขต่อท้าย ตอนนี้ คุณสามารถฮาร์ดโค้ดชื่อเครื่องเสมือนในสคริปต์หรือส่งต่อไปยังสคริปต์เป็นอาร์กิวเมนต์อินพุต แต่สิ่งนี้ต้องมีการโต้ตอบเมื่อดำเนินการ หรือคุณสามารถแยกวิเคราะห์ตารางกระบวนการและลองค้นหาชื่อของคอนเทนเนอร์เครื่องเสมือนที่กำลังทำงานอยู่ในปัจจุบันเพื่อสร้างสคริปต์ที่ไม่ต้องใส่ข้อมูลทั้งหมด คุณยังสามารถใช้คำสั่ง which เพื่อตรวจหาเส้นทางแบบเต็มของไบนารี VBoxManage
จากนั้น คุณสามารถสร้างทางลัด ตัวอย่างเช่น ใน Gnome ให้เพิ่ม Launcher แบบกำหนดเองไปที่แผงด้านบน และในช่องคำสั่งให้เขียนพาธแบบเต็มไปยังสคริปต์ภาพหน้าจอของคุณ และคุณจะมีโซลูชันอัตโนมัติที่เกือบจะเทียบเท่ากับการดำเนินการตัวเลือกเมนูและอาจเร็วกว่านั้น มีตัวเลือกมากมาย แต่สิ่งนี้ควรช่วยให้คุณเริ่มต้นได้
ข้อดีอีกอย่าง
วิธีนี้มีโบนัสอื่นที่ยูทิลิตี้ภายนอกไม่มี มันจะดึงเนื้อหาของหน้าจอทั้งหมดของแขกของคุณ แม้ว่ามันจะแสดงเพียงบางส่วนในมอนิเตอร์โฮสต์ของคุณก็ตาม ดังนั้นหากคุณใช้ความละเอียดที่แตกต่างกันสำหรับโฮสต์และแขก ใช้หลายจอภาพหรือเปิดหน้าต่างเครื่อง คุณจะไม่ถูกครอบตัดที่น่ารำคาญ ตัวอย่างเช่น โปรดสังเกตเครื่องเสมือน Windows 8 เครื่องนี้ ดูแถบเลื่อนแนวนอนและแนวตั้ง? ซึ่งหมายความว่าคุณไม่เห็นทั้งหมดที่มีให้ดู แต่คุณสมบัติการจับภาพหน้าจอช่วยแก้ปัญหานั้นได้
สรุป
ไปแล้ว คุณเพิ่งเรียนรู้วิธีหลีกเลี่ยงสิ่งที่น่ารำคาญที่สุดใน VirtualBox นั่นคือการจัดการภาพหน้าจอเครื่องเสมือนของคุณ ด้วยการใช้บรรทัดคำสั่ง คุณจะสามารถทำให้การจับภาพหน้าจอของคุณเป็นแบบอัตโนมัติได้เกือบ 100%
บทช่วยสอนนี้มุ่งเน้นไปที่ VirtualBox และภาพหน้าจอ แต่ยังสอนวิธีคิดด้านข้างเล็กน้อย เปิดเผยการจัดการบรรทัดคำสั่งอันทรงพลังของ VirtualBox วิธีใช้สคริปต์ ทางลัดและปุ่มคำสั่งผสมทางลัดเพื่อทำให้ชีวิตของคุณง่ายขึ้น รวมทั้งรสชาติของ Windows และ Linux , BASIC บางตัว, BASH บางตัวใช้งานได้ดี หวังว่าคุณจะชอบ ขอให้สนุก
ไชโย