[オリジナル]スクリーンショット、windowsタスクバーを含まない


ネット上の資料を参考にしました.

package test;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

/**
 *   ,     ,      ,    。
 * @author liwenliang
 */
public class TestImage {
	public static void main(String[] args) {
		testImage();
	}
	
	public static void testImage() {
		try {
			//         
			Toolkit toolkit = Toolkit.getDefaultToolkit();
			Dimension screenSize = toolkit.getScreenSize();
			//       
			GraphicsConfiguration gc = 
				GraphicsEnvironment.getLocalGraphicsEnvironment()
								   .getDefaultScreenDevice()
								   .getDefaultConfiguration();
			//       insets
			Insets screenInsets = toolkit.getScreenInsets(gc); 
			Rectangle desktopBounds = new Rectangle( 
					screenInsets.left, screenInsets.top, 
	                screenSize.width - screenInsets.left - screenInsets.right, 
	                screenSize.height - screenInsets.top - screenInsets.bottom);
			BufferedImage bImage = new Robot().createScreenCapture(
					new Rectangle(desktopBounds));
			//       ,jpg     ,      
			String name = "e:\\image.png";
			File f = new File(name);
			ImageIO.write(bImage, "png", f);
			System.out.println("copy screen ok..........");
		} catch (AWTException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}