黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 黑客编程 >> 文章正文
[图文]重启动和关闭计算机(Delphi编程)
        ★★★★★
重启动和关闭计算机(Delphi编程)
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-9-27

本实例介绍在Windows 2000环境下如何注销、重新启动和关闭计算机。

向窗体上添加一个TButton组件和3TRadioButton组件,其中TRadioButton组件用于选择程序的功能是注销、重新启动还是关闭计算机。设计完成的主界面如图4-9所示。

4-9  主界面

Windows 2000操作系统中,如果在程序中直接调用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;

执行以上代码,应用程序就可以获得注销、重新启动或关闭计算机的权限。

如果用户选择了程序需要完成的功能,单击“确定”按钮就可以完成用户指定的功能,响应代码如下:

procedure TForm1.btnOKClick(Sender: TObject);

begin

    if self.RadioButton1.Checked then

    begin

        ExitWindowsEx(EWX_LOGOFF,0);

    end;

    if self.RadioButton2.Checked then

    begin

        ExitWindowsEx(EWX_REBOOT,0);

    end;

    if self.RadioButton3.Checked then

    begin

        ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0);

    end;

end;

程序通过判断3TRadioButton组件的选中状态来设置ExitWindowsEx函数的第1个参数,如果该参数的第1个参数值为EWX_LOGOFF,那么就会完成注销的操作;如果为EWX_REBOOT,那么就会完成重新启动的操作;如果为EWX_SHUTDOWN or EWX_POWEROFF,那么就会关闭计算机。

[1] [2] 下一页  

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886