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: