主题:[转帖]一个简单的使计算机重启的程序
skybtone [专家分:160] 发布于 2006-07-16 21:54:00
//这是我在网上偶尔发现的一个简单的使计算机重启的程序.和大家一起分享:)
#include "windows.h"
void main(int argc, char* argv[])
{typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针
HINSTANCE hInst = LoadLibrary("shell32.dll"); //装入shell32.dll
SHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针
if(hInst != NULL)
{
//获得函数的地址并调用之
ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
(*ShutDownDialog)(0);
}
}
回复列表 (共9个回复)
沙发
快乐祥子 [专家分:0] 发布于 2006-07-16 23:22:00
是不是真的啊
板凳
skybtone [专家分:160] 发布于 2006-07-17 08:18:00
我运行过了,成功啦,只是不太理解这个程序
3 楼
ccfyang [专家分:0] 发布于 2006-07-17 08:59:00
为什么我运行却有那么多错误?
几乎每一句话都编译通不过
4 楼
skybtone [专家分:160] 发布于 2006-07-17 12:27:00
在VC里新建一个console application,a simple application.如果命名为rs,那么打开rs.cpp这个文件(在VC工作环境下FileView->SourceFiles->rs.cpp),只留#include "stdafx.h"因为stdafx.h要用到,这是个重要的文件,其余的就可以不要了,把其余的替换成以上那段程序,就可以运行成功了
5 楼
rickone [专家分:15390] 发布于 2006-07-17 14:33:00
关键一句啊
ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
他对shell32.dll很了解,我想应该有资料查的。
6 楼
海上飞洪 [专家分:520] 发布于 2006-07-18 17:00:00
TURBO C好像不行哦
7 楼
rickone [专家分:15390] 发布于 2006-07-18 19:18:00
它是调用了WINDOWS中的一个函数,应该还会出现一个框框要点一下确定吧,就相当于你点‘开始’-‘关闭计算机’。
9 楼
InitInstance [专家分:8720] 发布于 2006-07-19 19:35:00
先获得权限令牌,调用ExitWindowsEx即可关机,重起,注销............
我来回复