यह एक गर्म विषय है। आप VirtualBox का उपयोग करके वर्चुअल मशीनों के अंदर विभिन्न इंस्टॉलेशन और ऑपरेशन करते हैं और आप अपनी गतिविधियों को दस्तावेज करने के लिए स्क्रीनशॉट लेना चाहते हैं। VMware वर्चुअलाइजेशन उत्पादों की रेंज में, स्क्रीनशॉट सुविधा सिस्टम मेनू में मौजूद है, इसलिए यह करना बहुत सरल है। VirtualBox में, ऐसा कोई विकल्प उपलब्ध नहीं है। इसका मतलब है कि आपको होस्ट उपयोगिताओं का उपयोग करके स्क्रीनशॉट लेने का सहारा लेना होगा, जैसे विभिन्न स्क्रीनशॉट प्रोग्राम, PrtScrn या Alt+PrtScrn, और अन्य कुंजी संयोजन। हमेशा सरल नहीं, लेकिन सबसे बड़ी समस्या यह है कि VirtualBox अपने इंटरफ़ेस के एक हिस्से को गेस्ट ऑपरेटिंग सिस्टम स्क्रीन स्पेस के रूप में मानता है। और इस प्रकार, आपके स्क्रीनशॉट कभी भी साफ नहीं निकलते।
ठीक है, यह सब हमें बताता है कि समस्या क्या है। आप अपने गेस्ट सिस्टम के स्क्रीनशॉट बाहर से लेने में सक्षम होना चाहते हैं, बिना फोल्डर साझा किए और वर्चुअल मशीनों के अंदर से स्क्रीनशॉट कॉपी और पेस्ट किए बिना। आप अपने होस्ट पर कुछ कार्यक्षमता चाहते हैं जो स्क्रीनशॉट लेगा, आंतरिक VirtualBox बॉर्डर को छोड़कर जो स्क्रीनशॉट को प्रभावित करता है। क्या यह किया जा सकता है? जवाब है, हां, संस्करण 4.0 से। मेरा अनुसरण करें।
स्क्रीनशॉट, आज
चाहे आप SnagIt, IrfanView, GIMP, Gnome Screenshot, KSnapshot, या कोई अन्य सॉफ्टवेयर उपयोग करें, परिणाम हमेशा समान होंगे। आपके पास वह कष्टप्रद शीर्ष और निचला बॉर्डर होगा जो सभी को बताता है कि आपने अभी VirtualBox विंडो का स्क्रीनशॉट लिया है। उदाहरण के लिए, ऐसा कुछ:
यह कष्टप्रद है। आप केवल नीला आयत चाहते हैं, इसलिए आपको मैन्युअल रूप से क्षेत्र को क्रॉप करना होगा, अपने कीमती समय को बर्बाद करना। अब, एक सरल विकल्प है, लेकिन इसके लिए VirtualBox कमांड लाइन का उपयोग करने की आवश्यकता है।
समाधान: कमांडलाइन से VBoxManage का उपयोग करें
नई सुविधा संस्करण 4.0 और ऊपर में उपलब्ध है, इसलिए यह सॉफ्टवेयर के पुराने संस्करणों पर काम नहीं करेगा। आपको निम्न कमांड को आह्वान करने की आवश्यकता है:
VBoxManage controlvm <vm name> screenshotpng <filename>.png
वह पूरा जादू है, जहां <vm name> आपकी वर्चुअल मशीन का नाम है और <filename> कोई भी स्ट्रिंग है जिसका उपयोग आप बाद में अपने स्क्रीनशॉट की पहचान करने के लिए करना चाहते हैं।
और यहां एक Ubuntu Lucid उदाहरण है:
स्क्रिप्टिंग
आप अभी भी इस प्रक्रिया को आंशिक रूप से स्वचालित कर सकते हैं, इसलिए आपको हमेशा मैन्युअल रूप से कमांड लाइन पर जाने और वांछित कमांड को आह्वान करने की आवश्यकता नहीं है। सबसे पहले, आप स्क्रिप्ट बना सकते हैं जो आपके लिए कमांड निष्पादित करती है। मैं BASIC (BAT) का उपयोग करके Windows पर और BASH पर Linux पर प्रदर्शित करूंगा। दूसरा, आप इमेज के लिए सामान्य पहचानकर्ताओं का उपयोग कर सकते हैं, इसलिए आपको हर बार मैन्युअल रूप से नाम इनपुट करने की आवश्यकता नहीं है। पर्यावरण वेरिएबल RANDOM या टाइम स्टैम्प अच्छे विकल्प लगते हैं। अंत में, आप शॉर्टकट बना सकते हैं, या तो अपने डेस्कटॉप या एप्लिकेशन पैनल पर और हॉटकी कॉम्बो जोड़ सकते हैं जो शॉर्टकट या एप्लिकेशन को आह्वान करते हैं।
Windows उदाहरण
Windows में कमांड लाइन का उपयोग करना सबसे स्वाभाविक चीज नहीं लग सकती है, लेकिन यह काफी आसान है। एक बार जब आप मूल बातें [sic] मास्टर कर लेते हैं, तो आप बैच फाइलें लिखने पर आगे बढ़ सकते हैं।
आप इमेज नामों को हार्डकोड कर सकते हैं या कुछ ऐसा उपयोग कर सकते हैं जो हर बार अद्वितीय स्ट्रिंग बनाएगा, या तो एक समय या तारीख स्ट्रिंग या एक रैंडम नंबर। फिर, आप एक साधारण बैच फाइल लिख सकते हैं जो आपके लिए कमांड निष्पादित करेगी।
echo off
<full path to VBoxManage.exe" controlvm <vm name> screenshotpng <filename>.png
अधिक विशेष रूप से, हाथ में उदाहरण का उपयोग करके, हमारा Windows 8 गेस्ट। हम अपनी वर्चुअल मशीन के लिए एक बैच फाइल बनाते हैं जो इमेज नामों में एक रैंडम स्ट्रिंग जोड़ देगा ताकि वे अद्वितीय हों। हम इमेज को Share डायरेक्टरी में रखते हैं, लेकिन आप जो चाहें उपयोग कर सकते हैं। इसी तरह, वर्चुअल मशीन नाम को हार्डकोडेड मान या इनपुट आर्गुमेंट के रूप में माना जा सकता है।
echo off
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm Windows-8 screenshotpng C:\Share\image-%random%.png
अंत में, आप एक शॉर्टकट बना सकते हैं, इसे कहीं रख सकते हैं, फिर इसके गुणों को संपादित करें और एक शॉर्टकट कुंजी कॉम्बो जोड़ें जो इसे आह्वान करेगा। यह आपके काम को बहुत आसान और तेज बना देगा।
Linux उदाहरण
Linux पर, यह और भी आसान है।
हम एक सरल स्क्रिप्ट बना सकते हैं जिसमें केवल वह एक लाइन होती है।
#!/bin/bash
VBoxManage controlvm <vm name> screenshotpng ~/image-`date +%s`.png
exit 0
अंतिम परिणाम आपके होम डायरेक्टरी में इमेज होगी, जिसमें 1970 के बाद से बीते सेकंड की गिनती परिशिष्ट संख्या के रूप में होगी। अब, आप स्क्रिप्ट में वर्चुअल मशीन नाम को हार्डकोड कर सकते हैं या इसे इनपुट आर्गुमेंट के रूप में स्क्रिप्ट में पास कर सकते हैं, लेकिन इसके लिए निष्पादन करते समय इंटरैक्शन की आवश्यकता होती है। या आप प्रोसेस टेबल को पार्स करने की कोशिश कर सकते हैं और वर्तमान में चल रहे वर्चुअल मशीन कंटेनर का नाम ढूंढने की कोशिश कर सकते हैं ताकि एक पूरी तरह से अनअटेंडेड स्क्रिप्ट बनाई जा सके। आप VBoxManage बाइनरी का पूरा पथ पता लगाने के लिए which कमांड का भी उपयोग कर सकते हैं।
फिर, आप शॉर्टकट बना सकते हैं। उदाहरण के लिए, Gnome में, शीर्ष पैनल पर एक कस्टम लॉन्चर जोड़ें, और कमांड फ़ील्ड में अपने स्क्रीनशॉट स्क्रिप्ट का पूरा पथ लिखें। और आपके पास एक स्वचालित समाधान होगा जो मेनू विकल्प निष्पादित करने के लगभग बराबर है और संभवतः और भी तेज़। कई विकल्प हैं, लेकिन यह आपको शुरू करना चाहिए।
एक और फायदा
इस विधि का एक और बोनस है जो बाहरी उपयोगिताओं के पास नहीं है। यह आपके गेस्ट की पूरी स्क्रीन की सामग्री को पकड़ लेगा, भले ही यह आपके होस्ट मॉनिटर पर केवल आंशिक रूप से दिखाया गया हो। इसलिए यदि आप होस्ट और गेस्ट के लिए अलग-अलग रिज़ॉल्यूशन का उपयोग कर रहे हैं, एकाधिक मॉनिटर या अपनी मशीनों को विंडोड चलाते हैं, तो आपको कोई कष्टप्रद क्रॉपिंग नहीं मिलेगी। उदाहरण के लिए, कृपया इस Windows 8 वर्चुअल मशीन को नोटिस करें। क्षैतिज और ऊर्ध्वाधर स्क्रॉल बार देखें? इसका मतलब है कि आप वह सब नहीं देख रहे हैं जो देखने के लिए है, लेकिन स्क्रीनशॉट कैप्चर सुविधा उस समस्या को हल करती है।
निष्कर्ष
वहां आप जाते हैं। आपने अभी सीखा कि VirtualBox में उस एक सबसे कष्टप्रद चीज से कैसे निपटना है, अपने वर्चुअल मशीन स्क्रीनशॉट का प्रबंधन। कमांड लाइन के कुछ उपयोग के साथ, आप अपने स्क्रीनशॉट लेने को लगभग 100% स्वचालित करने में सक्षम होंगे।
यह ट्यूटोरियल VirtualBox और स्क्रीनशॉट पर केंद्रित है, लेकिन यह यह भी सिखाता है कि कैसे लेटरल रूप से सोचें, VirtualBox शक्तिशाली कमांड लाइन प्रबंधन को उजागर करता है, स्क्रिप्ट, शॉर्टकट और शॉर्टकट कॉम्बो कुंजियों का उपयोग कैसे करें ताकि आपका जीवन आसान हो जाए, जिसमें Windows और Linux दोनों फ्लेवर शामिल हैं, कुछ BASIC, कुछ BASH, बस ठीक काम करता है। खैर, मुझे आशा है कि आपने इसे पसंद किया, मज़े करें।
चीयर्स।