|
Top Document: comp.os.msdos.programmer FAQ part 2/5 Previous Document: Next Document: See reader questions & answers on this topic! - Help others by sharing your knowledge
There are really two print screen functions: 1) print current screen
snapshot, triggered by PrintScreen or Shift- PrtSc or Shift-gray*, and
2) turn on continuous screen echo, started and stopped by Ctrl-P or
Ctrl-PrtSc.
1) Screen snapshot to printer:
The BIOS uses INT 5 for this. Fortunately, you don't need to mess with
that interrupt handler. The standard handler, in BIOS versions dated
December 1982 or later, uses a byte at 0040:0100 (= 0000:0500) to
determine whether a print screen is currently in progress. If it is,
pressing PrintScreen again is ignored. So to disable the screen
snapshot, all you have to do is write a 1 to that byte. When the user
presses PrintScreen, the BIOS will think that a print screen is already
in progress and will ignore the user's keypress. You can re-enable
PrintScreen by zeroing the same byte.
Here's some simple code:
void prtsc_allow(int allow) /* 0=disable, nonzero=enable */
{
unsigned char far* flag = (unsigned char far*)0x00400100UL;
*flag = (unsigned char)!allow;
}
2) Continuous echo of screen to printer:
If ANSI.SYS is loaded, you can easily disable the continuous echo of
screen to printer (Ctrl-P or Ctrl- PrtSc). Just redefine the keys by
"printing" strings like these to the screen (BASIC print, C printf(),
Pascal Write statements, or ECHO command in batch files), where <27>
stands for the Escape character, ASCII 27:
<27>[0;114;"Ctrl-PrtSc disabled"p
<27>[16;"^P"p
If you haven't installed ANSI.SYS, I can't offer an easy way to disable
the echo-screen-to-printer function.
Actually, you might not need to disable Ctrl-P and Ctrl- PrtSc. If your
only concern is not locking up your machine, when you see the "Abort,
Retry, Ignore, Fail" prompt just press Ctrl-P again and then press I. As
an alternative, install one of the many print spoolers that intercept
printer-status queries and always return "Printer ready".
User Contributions:Top Document: comp.os.msdos.programmer FAQ part 2/5 Previous Document: Next Document: Part1 - Part2 - Part3 - Part4 - Part5 - Single Page [ Usenet FAQs | Web FAQs | Documents | RFC Index ] Send corrections/additions to the FAQ Maintainer: jeffrey@carlyle.org (Jeffrey Carlyle)
Last Update March 27 2014 @ 02:11 PM
|

Comment about this article, ask questions, or add new information about this topic: