“打印”(键盘)按钮的工作原理如何?

时间:2013-08-09 12:44:30

标签: windows computer-science

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

如果有人知道,请告诉我。

谢谢,Jimit

1 个答案:

答案 0 :(得分:1)

原始使用

在基于命令行的操作系统(如MS-DOS)下,此键会将当前文本模式屏幕内存缓冲区的内容复制到标准打印机端口,通常为LPT1。实质上,打印按键时屏幕上当前的内容。按住Ctrl键与Prt Sc组合可打开和关闭“打印机回显”功能。当回声生效时,任何输出到屏幕的传统文本都将被复制(“回显”)到打印机。 U + 2399⎙

还有一个用于打印屏幕的Unicode字符

现代用途

使用图形界面的新一代操作系统倾向于将当前屏幕的位图图像复制到剪贴板或类似的存储区域,可以作为屏幕截图插入到文档中。有些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();
      }
    }
}