发信人: riffle() 
整理人: wenbobo(2002-08-13 10:45:45), 站内信件
 | 
 
 
/* author : *** */
 /*-------------------------------------------------------------------- --*/
 
 // TSRINTER.CPP
 
 // 本模块和TEST.CPP、TSRINT.CPP、TSR框架LIB一起做一个project,在large或 
 // huge模式下编译生成EXE文件以后,就具有驻留及退出驻留的功能了。
 
 // 该模块还可以用于其它使用该驻留程序提供的软中断的project。
 
 #include <DOS.H>
 #include <STDIO.H>
 #include "ITSR.H"
 
 // IITSR.H中的定义如下
 /*const unsigned int INSTALLEDSIGN = 0x474D;     // 'GM'
 
 const int INTERFACEINT = 0xA8;
 
 const unsigned int REMOVECMD = 0x01;
 const unsigned int CHECKINTCMD = 0x02;*/
 
 #include "TSRINTER.H"
 // TSRINTER.H 中的定义如下
 
 /*
 int IsTsrInstalled( void );
 int RemoveTsr( void );
 */
 
 /*-------------------------------------------------------------------- --*/
 
 static unsigned char ucTsrChecked = 0;
 static int iTsrHaveInstalled = 0;
 
 /*-------------------------------------------------------------------- --*/
 /********************************************************************* ***/
 int IsTsrInstalled( void )
 {
   if ( ucTsrChecked )
     if ( getvect( INTERFACEINT ) != NULL )
       return iTsrHaveInstalled;
 
   ucTsrChecked = 1;
 
   union REGS inregs;
   union REGS outregs;
   if ( getvect( INTERFACEINT ) != NULL )
     {
       inregs.x.ax = CHECKINTCMD;
       // 调用软中断检查,是否已经驻留。
       int86( INTERFACEINT, &inregs, &outregs );
 
       if ( outregs.x.ax == INSTALLEDSIGN );
         iTsrHaveInstalled = 1;
     }
   else
     iTsrHaveInstalled = 0;
 
   return iTsrHaveInstalled;
 }
 /********************************************************************* ***/
 
 /********************************************************************* ***/
 int RemoveTsr( void )
 {
   union REGS inregs;
   union REGS outregs;
 
   if ( IsTsrInstalled() )
     {
       inregs.x.ax = REMOVECMD;
       // 调用软中断执行退出驻留的命令。
       int86( INTERFACEINT, &inregs, &outregs );
       if ( outregs.x.ax == 0xFFFF )
 	return 0;
     }
   return 1;
 }
 /********************************************************************* ***/
 /********************************************************************* ***/
 /********************************************************************* ***/
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.39.56]
  | 
 
 
 |