Как работает кнопка "печать" (клавиатура)?

Мне очень любопытно узнать, как кнопка "Печать" захватывает текущий экран? Когда мы нажимаем кнопку "печать", что происходит? Как это будет захватывать экран?

Пожалуйста, дайте мне знать, если кто-то знает об этом.

Спасибо, Джимит

1 ответ

Решение

ОРИГИНАЛЬНОЕ ИСПОЛЬЗОВАНИЕ

В операционных системах на основе командной строки, таких как MS-DOS, этот ключ вызывает копирование содержимого буфера экранной памяти текущего текстового режима на стандартный порт принтера, обычно LPT1. По сути, все, что было в данный момент на экране при нажатии клавиши, было напечатано. Нажатие клавиши Ctrl в сочетании с Prt Sc включает и выключает функцию "эхо принтера". Когда действует эхо, любой обычный вывод текста на экран будет скопирован ("эхом") на принтер. Существует также символ Unicode для экрана печати, U+2399 ⎙

,

СОВРЕМЕННОЕ ИСПОЛЬЗОВАНИЕ

Операционные системы нового поколения, использующие графический интерфейс, обычно копируют растровое изображение текущего экрана в буфер обмена или сопоставимую область хранения, которую можно вставить в документы в виде снимка экрана. Некоторые оболочки позволяют изменять точное поведение с помощью клавиш-модификаторов, таких как управляющая клавиша.

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();
      }
    }
}
Другие вопросы по тегам