0

我很想知道“打印”按钮如何捕获当前屏幕?当我们按下“打印”按钮时会发生什么?它将如何捕获屏幕?

如果有人知道同样的情况,请告诉我。

谢谢,吉米特

4

1 回答 1

1

原始用途

在 MS-DOS 等基于命令行的操作系统下,该键将当前文本模式屏幕内存缓冲区的内容复制到标准打印机端口,通常是 LPT1。实质上,当按键被按下时,屏幕上当前的任何内容都会被打印出来。按住 Ctrl 键和 Prt Sc 可以打开和关闭“打印机回显”功能。当 echo 生效时,屏幕上的任何常规文本输出都将被复制(“回显”)到打印机。打印屏幕还有一个 Unicode 字符,U+2399 ⎙</p>

.

现代用途

使用图形界面的新一代操作系统倾向于将当前屏幕的位图图像复制到其剪贴板或类似的存储区域,可以将其作为屏幕截图插入到文档中。一些 shell 允许使用修饰键(例如控制键)来修改确切的行为。

Macintosh 不使用打印屏幕键;相反,使用以 ⌘ Cmd+⇧ Shift 开头的组合键。

.

编码

例如,可以运行 C# 代码来截取屏幕截图:

private void PrtScr() {  
    Bitmap bm = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
                               Screen.PrimaryScreen.Bounds.Height);

    Graphics g = Graphics.FromImage(bm as Image);

    g.CopyFromScreen(0, 0, 0, 0, bm.Size);

    bm.Save(@"C:\image.jpeg", ImageFormat.Jpeg);

}

例如 Java 代码:

class ScreenRecorder {
public static void main(String args[]) {
   try {
       Toolkit tool = Toolkit.getDefaultToolkit();
       Dimension d = tool.getScreenSize();
       Rectangle rect = new Rectangle(d);
       Robot robot = new Robot();
       Thread.sleep(2000);
       File f = new File("screenshot.jpg");
       BufferedImage img = robot.createScreenCapture(rect);
       ImageIO.write(img,"jpeg",f);
       tool.beep();
       } catch(Exception e){
        e.printStackTrace();
      }
    }
}
于 2013-08-09T12:59:25.633 回答