分享

delphi 关闭计算机

 独孤求财 2012-03-20

delphi 关闭计算机

时间:2011-5-26来源:yang 作者: peng点击: 7次

DELPHI中调用API函数ExitWindowsEX可以实现系统的关机,注销,和重启。

关机:ExitWindowsEx(EWX_POWEROFF OR EWD SHUTDOWN,0)

注销:ExitWindowsEx(EWX_LOGOFF,0)

重启:ExitWindowsEx(EWX_REBOOT,0)

不过函数ExitWindowsEx在完成系统的关机、注销、重启动作之前必须要使应用程序获得系统相应的权限。

可以在窗体初始化时进行操作:

procedure TForm1.FormCreate(Sender: TObject);

var

hToken : THandle;

Tkp : TTokenPrivileges;

Zero:DWORD;

begin

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or

TOKEN_QUERY,hToken);

LookupPrivilegeValue(nil,‘SeShutdownPrivilege‘,tkp.Privileges[0].Luid);

Tkp.PrivilegeCount :=1;

Tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,False,Tkp,SizeOf(TTokenPrivileges),nil,Zero);

end;

执行以上代码,应用程序就获得了系统关机、注销、重启的权限了,然后加上ExitWindowsEx(EWX_POWEROFF OR EWD SHUTDOWN,0)就行了。
在xp中运行成功。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多