在DOS系统中怎样关闭计算机

piperliu 2005-03-23 08:34:46
我的程序是在DOS中运行,怎样在程序退出的同时关闭计算机(用C或汇编都可以)
...全文
365 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjp6688 2005-03-25
  • 打赏
  • 举报
回复
用TC可以调过去,最好能解释一下!
WiseNeuro 2005-03-24
  • 打赏
  • 举报
回复
mark
华芸智森 2005-03-24
  • 打赏
  • 举报
回复
WIN98的DOS启动盘下有一个关机EXE文件,COPY过来 SHELL 就可以了.
021850524 2005-03-24
  • 打赏
  • 举报
回复
给你贴过来:

/*shutdown your computer*/
#include <stdio.h>
#include <bios.h>
#include <dos.h>
int main(void)
{
int flag;
int check_apm(void),connect_apm(void),send_apm_1_2(void),off(void);

flag=check_apm();
if(flag==0)
{
printf("check APM error.\n");exit(1);
}

flag=connect_apm();
if(flag==0)
{
printf("connect APM error under real mode.\n");exit(1);
}

flag=send_apm_1_2();
if(flag==0)
{
printf("notify system APM version 1.2 error.\n");exit(1);
}

flag=off();
if(flag==0)
{
printf("error while shutdown your PC.\n");exit(1);
}

return 0;
}

int check_apm(void)
{
union REGS r;
r.x.ax=0x5300;
r.x.bx=0;
int86(0x15,&r,&r);
if(r.x.cflag==1)
return 0;
else return 1;
}

int connect_apm(void)
{
union REGS r;
r.x.ax=0x5301;
r.x.bx=0;
int86(0x15,&r,&r);
if(r.x.cflag)
return 0;
else
return 1;
}

int send_apm_1_2(void)
{
union REGS r;
r.x.ax=0x530e;
r.x.bx=0;
r.x.cx=0x0102;
int86(0x15,&r,&r);
if(r.x.cflag)
return 0;
else
return 1;
}

int off(void)
{
union REGS r;
r.x.ax=0x5307;
r.x.bx=0001;
r.x.cx=3;
int86(0x15,&r,&r);
if(r.x.cflag)
return 0;
else
return 1;
}
021850524 2005-03-24
  • 打赏
  • 举报
回复
我印象里当时是调用的INT 15H, 你查查吧. 代码挺短的.
021850524 2005-03-24
  • 打赏
  • 举报
回复
我以前写过,在家呢.具体调用哪个中断现在找不到.晚上给你.
galanz 2005-03-24
  • 打赏
  • 举报
回复
开机不会 ,关机难道不会吗

@echo off
setlocal
cd/d %temp%
echo Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}").ExecQuery("Select * from Win32_OperatingSystem") >shutdown.vbs
echo For Each objOperatingSystem in colOperatingSystems >>shutdown.vbs
echo ObjOperatingSystem.Win32Shutdown(8) >>shutdown.vbs
echo Next >>shutdown.vbs
cscript shutdown.vbs
del shutdown.vbs
stonesstar 2005-03-24
  • 打赏
  • 举报
回复
shutdown -r 重起
xunfengxxx 2005-03-24
  • 打赏
  • 举报
回复
不好意思打错了
运行shutdown -s -t 100
100表示100秒后关机
shut down -a
取消关机命令
如何运行这个dos命令应该不用我说了吧
xunfengxxx 2005-03-24
  • 打赏
  • 举报
回复
shut down -s -t 100
Flood1984 2005-03-24
  • 打赏
  • 举报
回复
试试:
system("exit");

不过在DOS时代关机确实是直接关电源的。
lonergb25 2005-03-24
  • 打赏
  • 举报
回复
也没有听说过有dos下的应用程序可以做到这样的。
myorange520 2005-03-24
  • 打赏
  • 举报
回复
不会把,直接关电源,那电脑不是很容易坏,虽然我不知道怎么关,但我想应该有方法的
hjzh 2005-03-24
  • 打赏
  • 举报
回复
关电源
xjp6688 2005-03-24
  • 打赏
  • 举报
回复
直接把电源关掉
o1n 2005-03-23
  • 打赏
  • 举报
回复
没有吧。
直接关电源我只知道。
llmsn 2005-03-23
  • 打赏
  • 举报
回复
直接把电源关掉就行了吧.
YFY 2005-03-23
  • 打赏
  • 举报
回复
DOS有关机的吗? 没有听说过艾,我们都直接关电源。

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧