中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-01 18:55
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行
DOS开发编程 & 发展交流 (开发室) » C语言中实现软关机
可打印版本  1,200 / 3
第1楼 jhtzz 发表于 2006-02-11 11:32
新手上路 发帖 2 积分 8
C语言中实现软关机
如题,目前网上有些小程序可以在dos下关机了,或WIN98里面的win/z都可以关机呀
第2楼 JonePeng 发表于 2006-02-11 15:12
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
第3楼 jhtzz 发表于 2006-02-23 08:58
新手上路 发帖 2 积分 8
本人解决了
#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();
}
第4楼 henrya2 发表于 2006-02-25 21:24
中级用户 发帖 171 积分 486
看不懂,能不能提供一些在C语言中使用中断的资料呢?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023