How to Do a Print Screen Within a Program

ID: Q59380


The information in this article applies to:


SUMMARY

The code below demonstrates how to do a print screen from within a program under MS-DOS. This is done by executing Interrupt 5 within a program.


MORE INFORMATION

The interrupt service directs all its output to the default printer. The print-screen service prints text or graphics. In graphics mode, GRAPHICS.COM must be loaded before invoking the print-screen service.

Interrupt 5 does not return any values but the status code is available at memory location 0050:0000. The values are as follows:


   00   No error occurred
   01   Indicates that a print-screen operation is in progress
   FF   The previous print screen was not successful. 

Sample Code


  #include <stdio.h>
  #include <dos.h>

  void main (void)
  {
     int  *result;
     union REGS inregs, outregs;

  /* inregs and outregs are never used but necessary
     for the int86 function.
  */ 

     puts("This is a test of prtscr() function.");
     int86(0x5, &inregs, &outregs);

     result = (int *) 0x00500000;
     switch( *result )
     {
        case 0:
          puts("No error occurred.");
          break;
        case 1:
          puts("Print Screen in progress....");
          break;
        case 0xFF:
          puts("ERROR occurred during print screen");
          break;
     }
  } 

Additional query words: kbinf 5.10 6.00 6.00a 6.00ax 7.00 1.00 1.50


Keywords          : kb16bitonly 
Version           : 
Platform          : 
Issue type        : 

Last Reviewed: August 3, 1999