Board logo

标题: C语言中实现软关机 [打印本页]

作者: jhtzz     时间: 2006-2-11 11:32    标题: C语言中实现软关机

如题,目前网上有些小程序可以在dos下关机了,或WIN98里面的win/z都可以关机呀
作者: JonePeng     时间: 2006-2-11 15:12
参考:怎样在C语言中实现软关机或重新启动?
作者: jhtzz     时间: 2006-2-23 08:58    标题: 本人解决了

#include "dos.h"
#define Bs       0x8
#define Tab      0x9
#define Esc      27
#define Enter    0xd

void off()
{
union REGS r;
r.x.ax=0x5300;
r.x.bx=0;
int86(0x15,&r,&r);

r.x.ax=0x5308;
r.x.bx=1;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x5308;
r.x.bx=0x0ffff;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x5301;
r.x.bx=0;
int86(0x15,&r,&r);

r.x.ax=0x530e;
r.x.bx=0;
int86(0x15,&r,&r);

r.x.ax=0x530d;
r.x.bx=1;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x530f;
r.x.bx=1;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x5307;
r.x.bx=1;
r.x.cx=3;
int86(0x15,&r,&r);

r.x.ax=0x4c00;
int86(0x20,&r,&r);
}

Reboot()
{
typedef void interrupt (*FP) ();
FP Reset;
Reset = (FP) MK_FP(peek(0xffff, 0x0003), peek(0xffff, 0x0001));
Reset();
}

void main()
{
  printf("sadfad");
  off();
  getch();
}
作者: henrya2     时间: 2006-2-25 21:24
看不懂,能不能提供一些在C语言中使用中断的资料呢?