विंडोज में कमांड लाइन से एक स्क्रीन शॉट लें


51

मैं कमांड लाइन से पूरी स्क्रीन का स्क्रीनशॉट लेने का एक तरीका ढूंढ रहा हूं। ऑपरेटिंग सिस्टम विंडोज है। कुछ इस तरह:

C:\>screenshot.exe screen1.png

1
आप ऐसा कुछ क्यों करना चाहेंगे? स्पष्ट कमी के अलावा (यह केवल उस कमांड लाइन के स्क्रीनशॉट लेने में सक्षम है जो आप वर्तमान में काम कर रहे हैं), ऐसे उद्देश्य के लिए "नियमित" समाधानों में क्या गलत है?
रोके

7
केवल cmd लाइन की तस्वीर लेने के लिए इसे प्रतिबंधित क्यों किया जाएगा? मुझे लगता है कि यह सवाल ऑटोमेशन की तर्ज पर अधिक है।
गर्ड क्लिमा

खैर, जिस पल में वह स्क्रीनशॉट लेना चाहता है, उसे कमांड देने के लिए एंटर दबाना होगा, है न? वह समय-समय पर इसे सक्रिय करने के लिए एक स्क्रिप्ट का उपयोग कर सकता था, लेकिन फिर वह वास्तव में गर्म पानी को पुनर्जीवित कर रहा है।
रुके

मैं एक स्क्रिप्ट लिखना चाहूंगा जो थंडरबर्ड में इमएल फाइल खोलता है, एक स्क्रीन शॉट लेता है, दूसरी फाइल खोलता है, एक और स्क्रीन शूट लेता है ... एक फ़ोल्डर में सभी फाइलों के लिए। मैं कमांड लाइन से स्क्रीन शॉट टूल निष्पादित करना चाहता हूं, इसलिए इसे स्वचालित किया जा सकता है। बस स्पष्ट होने के लिए, मैं कमांड लाइन का स्क्रीन शॉट नहीं लेना चाहता, लेकिन पूरी स्क्रीन का। वास्तव में, मैं पहले ही स्क्रिप्ट लिख चुका हूं, मैं स्क्रीन शॉट लेने के लिए और अधिक विकल्पों की तलाश कर रहा हूं।
एलजको फिलीपिन

2
@Idigias: सबसे पहले, स्क्रीन एक सीएमडी बॉक्स से बड़ी है, लेकिन दूसरी बात: जब कोई स्क्रिप्ट GUI टूल लॉन्च करती है, तो GUI टूल फोकस करता है। तो, आपकी "स्पष्ट कमी" स्पष्ट नहीं है, और कोई कमी भी नहीं है। क्या आपने कभी कमांड लाइन के साथ काम किया है?
TVCa

जवाबों:


26

डाउनलोड ImageMagick । कई कमांड लाइन छवि हेरफेर उपकरण शामिल हैं। आयात आपको कुछ या सभी स्क्रीन पर कब्जा करने और छवि को एक फ़ाइल में सहेजने की अनुमति देता है। उदाहरण के लिए, एक jpeg के रूप में पूरी स्क्रीन को बचाने के लिए:

import -window root screen.jpeg

यदि आप माउस का उपयोग खिड़की के अंदर क्लिक करने के लिए करना चाहते हैं या स्क्रीन क्षेत्र का चयन करना चाहते हैं और केवल एक png को बचा सकते हैं, तो उपयोग करें:

import box.png

13
यह विंडोज पर काम नहीं करता है। मुझे फ़ाइल नहीं मिली के बारे में एक एक्स सर्वर त्रुटि मिलती है।
बाइनरी फ़िले

2
@ BinaryPhile Yea मुझे लगता है कि यह केवल Cygwin पर चलने वाले X सर्वर के साथ काम करेगा।
CMCDragonkai

यह अभी भी मेरे लिए काम नहीं करता है। मुझे एक स्क्रीनशॉट मिलता है, लेकिन केवल एक्स एप्लिकेशन ही दिखाते हैं (उम्मीद के मुताबिक)।
रीइनियरियरपोस्ट

hm, ImageMagick 25 Mb है, और TON ऑफ कूल स्टफ है। screenCapture.bat, नीचे 9 Kb है, और बस वही करता है जो ओपी ने अनुरोध किया था। .04% पर ImageMagick का आकार।
जॉनी क्यों

41

इस सवाल का जवाब पहले ही दिया जा चुका है, लेकिन मुझे लगा कि मैं इसे भी फेंक दूंगा। NirCmd (फ्रीवेयर, दुख की बात है, खुला स्रोत नहीं) कमांड लाइन से स्क्रीनशॉट ले सकता है, कई अन्य कार्यों के साथ मिलकर यह कर सकता है।

इसे कमांड लाइन से nircmd.exe निर्देशिका में चला रहे हैं या यदि आपने इसे अपने सिस्टम32 फ़ोल्डर में कॉपी किया है:

nircmd.exe savescreenshot screen1.png

आप जो चाहते हैं। आप इसे इस तरह भी विलंबित कर सकते हैं:

nircmd.exe cmdwait 2000 savescreenshot screen1.png

यह 2000 मिली सेकेंड (2 सेकंड) प्रतीक्षा करेगा, और फिर स्क्रीनशॉट को कैप्चर और सेव करेगा।


Nircmdकई स्क्रीन का समर्थन नहीं करता है। यह केवल प्राथमिक स्क्रीन पर कब्जा करेगा।
थॉमस वेलर

1
ऐसा लगता है कि हाल के संस्करण कई स्क्रीन कर सकते हैं। savescreenshotfull [फ़ाइल नाम]
w32sh

मुझे शुरू में nircmd2 के लिए डाउनलोड लिंक नहीं मिला। Google खोज में कुछ भी नहीं दिखा। डाउनलोड करने की चाहत रखने वाले उपयोगकर्ताओं के लिए nircmd2, डाउनलोड लिंक nirsoft.net/utils/nircmd.html पृष्ठ के बहुत नीचे स्थित है । आप सीधे इस डाउनलोड लिंक का उपयोग कर सकते हैं: nirsoft.net/utils/nircmd.zip
alp_989

17

यह बाहरी उपकरणों के बिना किया जा सकता है (आपको बस स्थापित .net फ्रेमवर्क की आवश्यकता है, जो डिफ़ॉल्ट रूप से विस्टा और इसके बाद के संस्करण की हर चीज पर स्थापित है) - screenCapture.bat । यह एक स्वनिर्धारित C ​​# कार्यक्रम है और आप कुछ प्रारूपों में आउटपुट को बचा सकते हैं और केवल सक्रिय विंडो या संपूर्ण स्क्रीन पर कब्जा कर सकते हैं:

screenCapture- captures the screen or the active window and saves it to a file
Usage:
screenCapture  filename.format [WindowTitle]

filename - the file where the screen capture will be saved
format - Bmp,Emf,Exif,Gif,Icon,Jpeg,Png,Tiff and are supported - default is bmp
WindowTitle - instead of capturing the whole screen will capture the only a window with the given title if there's such

उदाहरण:

call screenCapture notepad.jpg "Notepad"
call screenCapture screen.png

2
निश्चित रूप से सबसे अच्छा समाधान। सुपर-छोटे 9K! यह ImageMagick (25 एमबी) का आकार 0.04% है। यह अंतर्निहित विंडोज कार्यक्षमता का उपयोग करता है। इस पृष्ठ पर अन्य सभी समाधानों की तुलना में टिनिअर। श्रेष्ठ!
जॉनी क्यों

1
एक बात जो मैंने इस समाधान के बारे में देखी, वह यह है कि कुछ विशिष्ट चीजें हैं जो इसे कैप्चर नहीं करती हैं। उदाहरण के लिए, कुछ एप्लिकेशन खुद को संलग्न कर रहे हैं और अन्य अनुप्रयोगों पर huds बना रहे हैं जो कैप्चर की गई छवि में प्रदान नहीं किए गए हैं। उन चरम मामलों में मैंने पाया कि मिनीकैप काम करता है। हालांकि ज्यादातर मामलों में, यह समाधान सबसे तेज़ और सबसे सरल है जो आप पा सकते हैं।
F1234k

हाय @npocmaka, मेरे पास दो मॉनिटर हैं कि डेस्कटॉप उन पर विस्तारित है। मैं दूसरे मॉनिटर के डेस्कटॉप का स्क्रीनशॉट लेना चाहता हूं। लेकिन आपका प्रोग्राम सिर्फ प्राथमिक डेस्कटॉप से ​​स्क्रीनशॉट लेता है। कोई तरकीब?
मिनी

@mini - आप उपयोग कर स्क्रिप्ट की ग # भाग संपादित कर सकते हैं इस । मैं सप्ताहांत में इसे जोड़ने की कोशिश करूँगा
npocmaka

@npocmaka, जैसा कि मैं C # से परिचित नहीं हूं, मुझे आपके अपडेट का इंतजार रहेगा। बहुत बहुत धन्यवाद।
मिनी

13

अन्य सुझाव ठीक हैं - आप मिनीकैप को भी आज़मा सकते हैं, जो मुफ़्त है और इसमें कुछ अन्य विशेषताएं हैं जैसे कि लचीली फ़ाइल नामकरण और कुछ अलग कैप्चर मोड: http://www.donationcoder.com/Software/Mouser/MiniCap/index.html

(अस्वीकरण: मैं मिनीकैप का लेखक हूं)।


1
तो फिर आप भी स्क्रीनशॉट कैप्टर के लेखक होने चाहिए। मैंने इसे अपनी आवश्यकताओं के लिए एक बेहतर समाधान पाया। धन्यवाद!
jon3laze 20

1
यह केवल व्यक्तिगत उपयोग के लिए निःशुल्क है। व्यावसायिक उपयोग के लिए, स्क्रीनशॉट कैप्चर के लिए लाइसेंस की आवश्यकता होती है।
थॉमस वेलर

9

इरफानव्यू की कोशिश करो ।

आप इसे कमांड-लाइन के माध्यम से चला सकते हैं। आप निर्दिष्ट कर सकते हैं कि किस विंडो को कैप्चर करना है - जैसे कि संपूर्ण विंडो या सिर्फ वर्तमान / सक्रिय विंडो - और आप कुछ मूल संपादन भी कर सकते हैं जैसे कि छवियों को शार्प करना, क्रॉप करना या आकार बदलना।

यहां कमांड लाइन विकल्प हैं , विशेष रूप से दिलचस्प है

i_view32 /capture=0 /convert=wholescreen.png

6

आप बॉक्सकटर टूल आज़मा सकते हैं :

usage: boxcutter [OPTIONS] [OUTPUT_FILENAME]

Saves a bitmap screenshot to 'OUTPUT_FILENAME' if given.  Otherwise, 
screenshot is stored on clipboard by default.

OPTIONS
  -c, --coords X1,Y1,X2,Y2    capture the rectange (X1,Y1)-(X2,Y2)
  -f, --fullscreen            fullscreen screenshot
  -v, --version               display version information
  -h, --help                  display help message

यह एक कई मॉनिटर का समर्थन करता है, लेकिन संस्करण 1.5 में कुछ अतिरिक्त काले क्षेत्र जोड़ता है
थॉमस वेलर

कॉम्पैक्टनेस में रुचि रखने वालों के लिए, फुल-स्क्रीन। Exe के लिए बॉक्सकटर केवल 22K है और नियमित .exe के लिए 502K है। यह ओपन-सोर्स है। मेरे लिए बहुत अच्छा काम करता है।
frakman1

6

स्क्रीनशॉट-सीएमडी एक डेस्कटॉप या किसी विंडो के विंडो टाइटल द्वारा चयनित का स्क्रीनशॉट लेता है। कब्जा करने के लिए आयत का चयन करना भी संभव है। परिणाम png फ़ाइल के रूप में संग्रहीत किया जाता है। (अंतिम अपडेट 2011 में)

विकल्प:
    -wt WINDOW_TITLE
            इस शीर्षक के साथ विंडो का चयन करें।
            शीर्षक में स्थान नहीं होना चाहिए ("")।
    -वो WINDOW_HANDLE
            इसे हैंडल करके विंडो चुनें
            (हेक्स स्ट्रिंग के रूप में प्रतिनिधित्व करते हैं - fe "0012079E") 
    -बाहर शीर्ष शीर्ष बॉटम
            फसल स्रोत। यदि कोई WINDOW_TITLE प्रदान नहीं किया गया है
            (0,0) डेस्कटॉप के शीर्ष कोने में छोड़ दिया गया है,
            और अगर WINDOW_TITLE डेस्कटॉप विंडो बनाता है
            (0,0) यह शीर्ष बाएं कोने है।
    -तो FILENAME
            आउटपुट फ़ाइल नाम, यदि कोई नहीं है, तो छवि सहेजी जाएगी
            वर्तमान कार्यशील निर्देशिका में "screenshot.png" के रूप में।
    -h
            यह सहायता जानकारी दिखाता है।

से प्रेरित: http://blog.mozilla.com/ted/2009/02/05/command-line-screenshot-tool-for-windows/


1
यह खुला स्रोत है, बीएसडी लाइसेंस। बहुत सरल और छोटा - मेरे लिए ये फायदे हैं।
जेरेकेक

2

आप Pillowप्राथमिक मॉनिटर के स्क्रीनशॉट लेने के लिए अजगर लाइब्रेरी का उपयोग कर सकते हैं

Step1: पिलो स्थापित करें:

pip install -user pillow

Step2: निम्नलिखित कोड के साथ स्क्रीनशॉट लें:

from PIL import ImageGrab
img = ImageGrab.grab()
img.save('screenshot.bmp')

1
पहले मैंने इमेजमाजिक सॉल्यूशन की कोशिश की, लेकिन जब मैंने पायथन कोड के उस टुकड़े को देखा, तो मैंने इसे इंटरएक्टिव पाइथन सीएलआई में आज़माया और दूसरी बार मैं खुश हो गया! धन्यवाद!!
डोमि

1

कमांड लाइन से भयानक स्क्रीनशॉट लेने के लिए आप कमर्शियल प्रोडक्ट स्नैपिट का उपयोग कर सकते हैं ।


2
यह अब एक व्यावसायिक उत्पाद है , .NET की जरूरत है और विंडोज 7 ++ के लिए जारी नहीं किया गया है। उत्तर में दिया गया लिंक HTTP 404 लौटाता है
थॉमस वेलर

हाँ GitHub रेपो मौजूद नहीं है।
अल्फा_989
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.