Chụp ảnh màn hình từ dòng lệnh trong Windows


51

Tôi đang tìm cách chụp ảnh màn hình toàn bộ màn hình từ dòng lệnh. Hệ điều hành là Windows. Một cái gì đó như thế này:

C:\>screenshot.exe screen1.png

1
Tại sao bạn muốn làm một cái gì đó như thế? Ngoài sự thiếu hụt rõ ràng (nó chỉ có thể chụp ảnh màn hình của dòng lệnh bạn đang làm việc), có gì sai với các giải pháp "thông thường" cho mục đích đó?
Rook

7
Tại sao nó chỉ bị hạn chế để chụp ảnh dòng cmd? Tôi nghĩ rằng câu hỏi đi nhiều hơn dọc theo dòng tự động hóa.
Gerd Klima

Chà, trong khoảnh khắc anh ấy muốn chụp ảnh màn hình, anh ấy phải nhấn enter để ra lệnh, phải không? Dĩ nhiên anh ta có thể sử dụng một kịch bản để kích hoạt nó, nhưng sau đó anh ta thực sự sáng tạo lại nước nóng.
Rook

Tôi muốn viết một tập lệnh mở tệp eml trong Thunderbird, chụp ảnh màn hình, mở tệp khác, chụp ảnh màn hình khác ... Đối với tất cả các tệp trong một thư mục. Tôi muốn thực thi công cụ chụp màn hình từ dòng lệnh, vì vậy nó có thể được tự động hóa. Nói rõ hơn, tôi không muốn chụp ảnh màn hình dòng lệnh, mà là toàn bộ màn hình. Trong thực tế, tôi đã viết kịch bản, tôi chỉ tìm kiếm thêm tùy chọn để chụp ảnh màn hình.
Željko Filipin

2
@Idigias: trước hết, màn hình lớn hơn hộp CMD, nhưng thứ hai: khi tập lệnh khởi chạy một công cụ GUI, công cụ GUI đó sẽ lấy nét. Vì vậy, "sự thiếu hụt rõ ràng" của bạn là không rõ ràng và cũng không thiếu. Bạn đã bao giờ làm việc với dòng lệnh?
tvCa

Câu trả lời:


26

Tải ImageMagick . Nhiều công cụ xử lý hình ảnh dòng lệnh được bao gồm. nhập cho phép bạn chụp một số hoặc tất cả màn hình và lưu hình ảnh vào một tệp. Ví dụ: để lưu toàn bộ màn hình dưới dạng jpeg:

import -window root screen.jpeg

Nếu bạn muốn sử dụng chuột để nhấp vào bên trong cửa sổ hoặc chọn vùng màn hình và lưu aa png, chỉ cần sử dụng:

import box.png

13
Điều này dường như không hoạt động trên Windows. Tôi nhận được một lỗi máy chủ X về tập tin không tìm thấy.
Nhị phân Phile

2
@BinaryPhile Yea Tôi nghĩ rằng điều này sẽ chỉ hoạt động với một máy chủ X chạy trên Cygwin.
CMCDragonkai

Nó vẫn không hoạt động đối với tôi. Tôi nhận được một ảnh chụp màn hình, nhưng chỉ các ứng dụng X hiển thị (như mong đợi).
Revierpost

hm, ImageMagick là 25 Mb và không TON những thứ hay ho. screenCapture.bat, bên dưới, là 9 Kb, và chỉ cần thực hiện chính xác những gì OP yêu cầu. Với 0,04% kích thước của ImageMagick.
johny tại sao

41

Câu hỏi này đã được trả lời, nhưng tôi nghĩ tôi cũng sẽ ném nó vào. NirCmd (phần mềm miễn phí, đáng buồn thay, không phải là nguồn mở) có thể chụp ảnh màn hình từ dòng lệnh, kết hợp với nhiều chức năng khác mà nó có thể làm.

Chạy nó từ dòng lệnh trong thư mục của nircmd.exe hoặc nếu bạn đã sao chép nó vào thư mục system32 của bạn:

nircmd.exe savescreenshot screen1.png

làm những gì bạn muốn. Bạn cũng có thể trì hoãn nó như thế này:

nircmd.exe cmdwait 2000 savescreenshot screen1.png

Điều đó sẽ đợi 2000 mili giây (2 giây), sau đó chụp và lưu ảnh chụp màn hình.


Nircmdkhông hỗ trợ nhiều màn hình. Nó sẽ chỉ chụp màn hình chính.
Thomas Weller

1
Có vẻ như các phiên bản gần đây có thể làm nhiều màn hình. savescreenshotfull [filename]
w32sh

Tôi không thể tìm thấy liên kết tải xuống cho nircmd2 ban đầu. Tìm kiếm Google không hiển thị bất cứ điều gì. Đối với người dùng đang tìm cách tải xuống nircmd2, liên kết tải xuống nằm ở cuối trang nirsoft.net/utils/nircmd.html . Bạn có thể trực tiếp sử dụng liên kết tải xuống này: nirsoft.net/utils/nircmd.zip
alpha_989

17

nó có thể được thực hiện mà không cần các công cụ bên ngoài (bạn chỉ cần cài đặt khung .net, được cài đặt theo mặc định trên mọi thứ từ vista trở lên) - screenCapture.bat . Đây là chương trình C # tự biên dịch và bạn có thể lưu đầu ra ở một vài định dạng và chỉ chụp cửa sổ đang hoạt động hoặc toàn bộ màn hình:

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

Ví dụ:

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

2
Chắc chắn là giải pháp tốt nhất. 9K siêu nhỏ! Đó là 0,04% kích thước của ImageMagick (25 Mb). Nó sử dụng chức năng Windows tích hợp. Tinier hơn tất cả các giải pháp khác trên trang này. Tốt!
johny tại sao

1
Một điều mà tôi nhận thấy về giải pháp này là có những điều cụ thể mà nó không nắm bắt được. Ví dụ, một số ứng dụng đang tự gắn và tạo ra các ứng dụng trên các ứng dụng khác không được hiển thị trong ảnh đã chụp. Trong những trường hợp cực đoan đó, tôi thấy rằng MiniCap hoạt động. Trong hầu hết các trường hợp, giải pháp này ngay tại đây là cách nhanh nhất và không phức tạp nhất mà bạn có thể tìm thấy.
F1234k

Xin chào @npocmaka, tôi có hai màn hình mà máy tính để bàn được mở rộng trên chúng. Tôi muốn chụp ảnh màn hình máy tính để bàn của màn hình thứ hai. Nhưng chương trình của bạn chỉ chụp ảnh màn hình từ máy tính để bàn chính. Có mẹo gì không?
ngày

@mini - bạn có thể chỉnh sửa phần c # của tập lệnh bằng cách này . Tôi sẽ cố gắng thêm phần này vào cuối tuần
npocmaka

@npocmaka, Vì tôi không quen với C #, tôi sẽ chờ cập nhật của bạn. Cảm ơn rất nhiều.
mini

13

Các đề xuất khác đều ổn - bạn cũng có thể dùng thử MiniCap, miễn phí và có một số tính năng khác như đặt tên tệp linh hoạt và một số chế độ chụp khác nhau: http://www.donationcoder.com/Software/Mouser/MiniCap/index.html

(từ chối trách nhiệm: Tôi là tác giả của MiniCap).


1
Sau đó, bạn cũng phải là tác giả của Ảnh chụp màn hình. Tôi thấy đó là một giải pháp tốt hơn cho nhu cầu của tôi. Cảm ơn bạn!
jon3laze

1
Nó là miễn phí cho chỉ sử dụng cá nhân. Để sử dụng thương mại, cần có giấy phép cho Ảnh chụp màn hình Captor.
Thomas Weller

9

Hãy dùng thử IrfanView .

Bạn có thể chạy nó thông qua dòng lệnh. Bạn có thể chỉ định cửa sổ nào sẽ chụp - chẳng hạn như toàn bộ cửa sổ hoặc chỉ cửa sổ hiện tại / đang hoạt động - và bạn cũng có thể thực hiện một số chỉnh sửa cơ bản như làm sắc nét, cắt xén hoặc thay đổi kích thước hình ảnh.

Dưới đây là các tùy chọn dòng lệnh , đặc biệt thú vị là

i_view32 /capture=0 /convert=wholescreen.png

6

Bạn có thể thử công cụ boxcutter :

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

Màn hình này hỗ trợ nhiều màn hình nhưng có thêm một số vùng màu đen trong phiên bản 1.5
Thomas Weller

Đối với những người quan tâm đến sự nhỏ gọn, boxcutter chỉ 22K cho toàn màn hình .exe và 502K cho .exe thông thường. Nó là nguồn mở. Làm việc tuyệt vời cho tôi.
frakman1

6

Ảnh chụp màn hình-cmd chụp ảnh màn hình của máy tính để bàn hoặc bất kỳ cửa sổ nào được chọn theo tiêu đề cửa sổ. Cũng có thể chọn hình chữ nhật để chụp. Kết quả được lưu trữ dưới dạng tệp png. (cập nhật lần cuối năm 2011)

LỰA CHỌN:
    -wt WINDOW_TITLE
            Chọn cửa sổ với tiêu đề này.
            Tiêu đề không được chứa khoảng trắng ("").
    -Khi WINDOW_HANDLE
            Chọn cửa sổ bởi nó xử lý
            (đại diện dưới dạng chuỗi hex - fe "0012079E") 
    -rc TRÁI PHIẾU HÀNG ĐẦU
            Cây trồng nguồn. Nếu không có WINDOW_TITLE được cung cấp
            (0,0) là góc trên cùng bên trái của máy tính để bàn,
            khác nếu WINDOW_TITLE gia công một cửa sổ máy tính để bàn
            (0,0) là góc trên cùng bên trái.
    -o PHIM
            Tên tệp đầu ra, nếu không, hình ảnh sẽ được lưu
            như "ảnh chụp màn hình" trong thư mục làm việc hiện tại.
    -h
            Hiển thị thông tin trợ giúp này.

Lấy cảm hứng từ: http://blog.mozilla.com/ted/2009/02/05/command-line-sc Muff-tool-for-windows /


1
Đây là mã nguồn mở, giấy phép BSD. Rất đơn giản và nhỏ - đối với tôi đây là những lợi thế.
Jarekczek

2

Bạn có thể sử dụng Pillowthư viện python để chụp ảnh màn hình của màn hình chính

Bước 1: cài đặt Gối:

pip install -user pillow

Bước2: Chụp ảnh màn hình với đoạn mã sau:

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

1
Đầu tiên tôi đã thử giải pháp tưởng tượng, nhưng khi tôi thấy đoạn mã Python đó, tôi đã thử nó trong Python CLI tương tác và một giây sau tôi thấy hạnh phúc! Cám ơn!!
domih

1

Bạn có thể sử dụng snapit sản phẩm thương mại để chụp ảnh màn hình tuyệt vời từ dòng lệnh.


2
Đây hiện là một sản phẩm thương mại , cần .NET và không được phát hành cho Windows 7 ++. Liên kết được đưa ra trong câu trả lời trả về HTTP 404.
Thomas Weller

Phải, repo GitHub không tồn tại.
alpha_989
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.