2010年3月18日木曜日

障害発生時の画面キャプチャ取得

Robot#createScreenCapture()を使うと現在の画面キャプチャが取れるようなのでそれを画像として保存する処理を仮作成。

離れた事業所で運用しているシステムで障害が発生した場合、電話だけでは要領を得ないので主要な所にはVNCをインストールしてますが、障害が起きている状態で連絡が来るわけでもないので、例外発生時の画面キャプチャを残す事で少しは有力な情報が得られそう。

同じような用途で実行時の画面インスタンス情報もテキスト化する処理を作りたいが、なかなか時間が確保できない...


// 画面サイズの取得
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle rect = env.getMaximumWindowBounds();

// 画面キャプチャ
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(rect);

// 取得したイメージを画像へ保存
Date date = new Date();
SimpleDateFormat dataFormat = (SimpleDateFormat)DateFormat.getDateInstance();
dataFormat.applyPattern("yyyyMMdd_HHmmss");
ImageIO.write(image, "gif", new File(dataFormat.format(date) + ".gif"));

0 件のコメント: