Windowsのコマンドラインからスクリーンショットを撮る


51

コマンドラインから画面全体のスクリーンショットを撮る方法を探しています。オペレーティングシステムはWindowsです。このようなもの:

C:\>screenshot.exe screen1.png

1
なぜあなたはそのようなことをしたいのですか?明らかな欠陥(現在作業中のコマンドラインのみのスクリーンショットを撮ることができること)は別として、そのような目的のための「通常の」ソリューションの何が問題になっていますか?
ルーク

7
なぜcmd行のみの写真を撮ることに制限されるのですか?質問は自動化のラインに沿っていると思います。
ゲルトクリマ

まあ、彼はスクリーンショットを撮りたい瞬間に、Enterを押してコマンドを与える必要がありますよね?もちろん、スクリプトを使用して時間を有効にすることもできますが、実際にはお湯を再発明しています。
ルーク

Thunderbirdでemlファイルを開き、スクリーンショットを撮り、別のファイルを開き、別のスクリーンショットを撮るスクリプトを作成したい...フォルダー内のすべてのファイルについて。コマンドラインからスクリーンショットツールを実行したいので、自動化できます。明確にするために、コマンドラインのスクリーンショットを撮りたくはありませんが、スクリーン全体を撮りたいです。実際、私はすでにスクリプトを作成しました。スクリーンショットを撮るためのオプションを探しています。
チェリコフィリピン2009年

2
@Idigias:まず第一に、画面はCMDボックスより大きいですが、第二に、スクリプトがGUIツールを起動すると、そのGUIツールがフォーカスを取得します。したがって、あなたの「明らかな欠陥」は明らかではなく、欠陥もありません。コマンドラインを使用したことがありますか?
tvCa

回答:


26

imagemagickをダウンロードします。多くのコマンドライン画像操作ツールが含まれています。 インポートを使用すると、画面の一部またはすべてをキャプチャして、画像をファイルに保存できます。たとえば、画面全体をjpegとして保存するには:

import -window root screen.jpeg

マウスを使用してウィンドウ内をクリックするか、画面領域を選択してpngを保存する場合は、次を使用します。

import box.png

13
これはWindowsでは機能しないようです。ファイルが見つからないというXサーバーエラーが表示されます。
バイナリフィール

2
@BinaryPhileはい、これはCygwinで実行されているXサーバーでのみ機能すると思います。
CMCDragonkai

私にはまだ機能しません。スクリーンショットを取得しますが、Xアプリケーションのみが表示されます(予想どおり)。
reinierpost

hm、ImageMagickは25 Mbであり、クールなもののトンを行います。以下のscreenCapture.batは9 Kbであり、OPが要求したとおりに実行します。ImageMagickのサイズは.04%です。
ジョニーなぜ

41

この質問はすでに回答されていますが、私もこれを投げると思いました。NirCmd(フリーウェア、悲しいことに、オープンソースではない)は、コマンドラインからスクリーンショットを撮影できます。

これをnircmd.exeのディレクトリのコマンドラインから実行するか、system32フォルダーにコピーした場合:

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
alpha_989

17

外部ツールなしで実行できます(vista以降のすべてにデフォルトでインストールされる.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の0.04%(25 Mb)です。組み込みのWindows機能を使用します。このページの他のすべてのソリューションよりも小さい。ベスト!
ジョニーなぜ

1
このソリューションについて私が気づいたことの1つは、キャプチャされない特定のものがあることです。たとえば、一部のアプリケーションはそれ自体をアタッチし、キャプチャされたイメージにレンダリングされない他のアプリケーションでハドを作成しています。これらの極端なケースでは、MiniCapが機能することがわかりました。ただし、ほとんどの場合、ここにあるこのソリューションは、最速で最も複雑ではありません。
-F1234k

こんにちは@npocmaka、デスクトップが拡張された2つのモニターがあります。2番目のモニターのデスクトップのスクリーンショットを撮りたいです。ただし、プログラムはプライマリデスクトップからスクリーンショットを取得するだけです。トリックは?
ミニ

@mini- これを使用し、スクリプトのc#部分を編集できます 。週末にこれを追加しようとします
npocmaka

@ npocmaka、C#に詳しくないので、更新をお待ちしています。どうもありがとう。
ミニ

13

他の提案でも構いません-MiniCapは無料で、柔軟なファイル命名やいくつかの異なるキャプチャモードなどの機能があります:http : //www.donationcoder.com/Software/Mouser/MiniCap/index.html

(免責事項:私はMiniCapの著者です)。


1
次に、スクリーンショットキャプターの作成者でもある必要があります。私は自分のニーズに合ったより良い解決策を見つけました。ありがとうございました!
jon3laze

1
個人使用のみ無料です。商用利用には、スクリーンショットキャプターのライセンスが必要です。
トーマスウェラー

9

IrfanViewをお試しください。

コマンドラインから実行できます。ウィンドウ全体または現在/アクティブなウィンドウなど、キャプチャするウィンドウを指定できます。また、画像のシャープ化、トリミング、サイズ変更などの基本的な編集を行うこともできます。

コマンドラインオプションは次のとおりです。特に興味深いのは

i_view32 /capture=0 /convert=wholescreen.png

6

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

これは複数のモニターをサポートしますが、バージョン1.5でいくつかの余分な黒い領域を追加します
Thomas Weller

コンパクト性に関心がある場合、boxcutterはフルスクリーン.exeで22K、通常の.exeで502Kです。オープンソースです。私には最適です。
frakman1

6

Screenshot-cmdは、デスクトップまたはウィンドウタイトルで選択されたウィンドウのスクリーンショットを撮ります。キャプチャする長方形を選択することもできます。結果はpngファイルとして保存されます。(2011年の最終更新)

オプション:
    -wt WINDOW_TITLE
            このタイトルのウィンドウを選択します。
            タイトルにスペース( "")を含めることはできません。
    -wh WINDOW_HANDLE
            ハンドルでウィンドウを選択
            (16進文字列として表現-fe "0012079E") 
    -rc左上右下
            作物のソース。WINDOW_TITLEが提供されていない場合
            (0,0)はデスクトップの左上隅です。
            それ以外の場合、WINDOW_TITLEがデスクトップウィンドウを作成する場合
            (0,0)は左上隅です。
    -o FILENAME
            出力ファイル名、ない場合、画像が保存されます
            現在の作業ディレクトリに「screenshot.png」として。
    -h
            このヘルプ情報を表示します。

インスピレーション:http : //blog.mozilla.com/ted/2009/02/05/command-line-screenshot-tool-for-windows/


1
これはオープンソースのBSDライセンスです。非常にシンプルで小さい-私にとってこれらは利点です。
ヤレクチェク

2

Pillowpythonライブラリを使用して、プライマリモニターのスクリーンショットを撮ることができます

Step1:Pillowをインストールします:

pip install -user pillow

ステップ2:次のコードでスクリーンショットを撮ります:

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

1
最初にimagemagicソリューションを試しましたが、そのPythonコードを見て、インタラクティブなPython CLIで試しました。どうも!!
ドミ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.