如何用C语言重新启动计算机?
请问各位高手,如何在C语言中编写一个函数,该函数的作用就是重新启动计算机?
注意:不要使用BIOS的19号中断!!!
例如一段程序如下:
void main()
{ getch();
reboot();
}
本程序的主要功能是在按任意键后重新启动计算机,请问reboot()函数的实现?
程序设计语言:C/C++ for DOS
问题点数:10、回复次数:7Top
1 楼ColdSpring(雪狼)回复于 2001-01-08 12:58:00 得分 0
好像要用嵌入汇编,具体的忘了
Top
2 楼Fesd(傻蛋)回复于 2001-01-08 13:28:00 得分 0
用Windows API
ExitWindowsExTop
3 楼acqy(Just Programmer)回复于 2001-01-08 13:32:00 得分 0
我是说要在DOS 6.22下执行的,至于Windows API中的ExitWindowsEx函数我也会用。
能不能不嵌入汇编语言程序,或者只嵌入少量简单的汇编程序?当然,如果用inport等函数也可以,最好能给出源代码或者伪码也行。Top
4 楼hotyei(出于蓝胜于蓝)回复于 2001-01-08 14:07:00 得分 0
asm jmp 0000:0000
忘记了,反正就是一两句话就搞定了。Top
5 楼K()回复于 2001-01-08 14:11:00 得分 0
用汇编就是 :
jmp 0ffff:0
也可用__emit__函数。( __emit__是这么写吧??8) )
#include "dos.h"
void reboot(void)
{
__emit__(0xea,0x00,0x00,0xff,0xff);
/*具体的参数我忘记了,以下写的可能正确,也可能不正确,因为我现在没有C的编译器。*/
}
main()
{reboot();
}
Top
6 楼K()回复于 2001-01-08 14:12:00 得分 10
用汇编就是 :
jmp 0ffff:0
也可用__emit__函数。( __emit__是这么写吧??8) )
#include "dos.h"
void reboot(void)
{
__emit__(0xea,0x00,0x00,0xff,0xff);
/*具体的参数我忘记了,以下写的可能正确,也可能不正确,因为我现在没有C的编译器。*/
}
main()
{reboot();
}
Top
7 楼acqy(Just Programmer)回复于 2001-01-08 18:06:00 得分 0
我上机试了一下,K提供的方法是正确的,参数也没错,谢谢!!Top




