CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

50分紧急求助如何在xp下用一个按钮进行自动关闭计算机

楼主stone800427(rock)2005-04-02 22:32:34 在 Delphi / 语言基础/算法/系统设计 提问

我试了一下有些文章上的说法,大多都是在98下进行的,到了xp   下时就不灵了,请高手帮忙 问题点数:0、回复次数:4Top

1 楼ehom(?!)回复于 2005-04-03 05:24:40 得分 0

你确定都仔细看了?还别说用google,在CSDN,类似问题都出现过成千上万遍。  
   
  说实在的,很多问题,有个MSDN可以查,都没必要问了。Top

2 楼lianshaohua(永远深爱一个叫“...”的好女孩儿!)回复于 2005-04-03 09:12:21 得分 0

要源程序?我有,其实楼上大侠说的很对,抽空给你,请留Email;Top

3 楼alimyso(我存在我精彩)回复于 2005-04-07 10:48:20 得分 0

procedure   TFrm_regedit.GetPrivilege;  
  var  
      NewState:               TTokenPrivileges;  
      lpLuid:                   Int64;  
      ReturnLength:       DWord;  
      ToKenHandle:         Cardinal;  
  begin  
      OpenProcessToken(GetCurrentProcess,  
                                        TOKEN_ADJUST_PRIVILEGES  
                                        OR   TOKEN_ALL_ACCESS  
                                        OR   STANDARD_RIGHTS_REQUIRED  
                                        OR   TOKEN_QUERY,ToKenHandle);  
      LookupPrivilegeValue(nil,'SeShutdownPrivilege',lpLuid);  
      NewState.PrivilegeCount:=1;  
      NewState.Privileges[0].Luid:=lpLuid;  
      NewState.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;  
      ReturnLength:=0;  
      AdjustTokenPrivileges(ToKenHandle,False,NewState,0,nil,ReturnLength);  
  end;Top

4 楼hellolongbin(一个人(自从扩充话题改版,再也不去灌水乐园了))回复于 2005-04-07 11:58:21 得分 0

procedure   ShutDownSystem;  
  var  
          hProcess,   hAccessToken:   THandle;  
          LUID_AND_ATTRIBUTES:   TLUIDAndAttributes;  
          TOKEN_PRIVILEGES:   TTokenPrivileges;  
          BufferIsNull:   DWord;  
  const  
          SE_SHUTDOWN_NAME   =   'SeShutdownPrivilege';  
  begin  
          //VER_PLATFORM_WIN32s   =   0;  
          //VER_PLATFORM_WIN32_WINDOWS   =   1;  
          //VER_PLATFORM_WIN32_NT   =   2;  
          if   Win32PlatForm   =   VER_PLATFORM_WIN32_NT   then  
          begin   //WindowsNT  
                  hProcess   :=   GetCurrentProcess;  
                  OpenProcessToken(hProcess,   TOKEN_ADJUST_PRIVILEGES   +   TOKEN_QUERY,   hAccessToken);  
                  LookupPrivilegeValue(nil,   SE_SHUTDOWN_NAME,   LUID_AND_ATTRIBUTES.Luid);  
                  LUID_AND_ATTRIBUTES.Attributes   :=   SE_PRIVILEGE_ENABLED;  
                  TOKEN_PRIVILEGES.PrivilegeCount   :=   1;  
                  TOKEN_PRIVILEGES.Privileges[0]   :=   LUID_AND_ATTRIBUTES;  
                  BufferIsNull   :=   0;  
                  AdjustTokenPrivileges(hAccessToken,   False,   TOKEN_PRIVILEGES,   sizeof(TOKEN_PRIVILEGES),   nil,   BufferIsNull);  
          end;  
          ExitWindowsEx(EWX_POWEROFF,   0);  
  end;Top

相关问题

  • 请问:要如何在窗体上加一个按钮,实现关闭计算机!在线等
  • 如何关闭计算机?
  • 关闭计算机的函数
  • 计算机关闭的奇怪问题~!
  • 怎么样关闭计算机?
  • 计算机的关闭与重启?
  • 我的机器一选择关闭计算机就重新启动,有没有可能是电源按钮接到主板的两条线接反了?还是其它的原因?
  • 计算机,XP,无法联网
  • 为什么我的xp在关机的时候会提示"您现在可以安全的关闭计算机了",然后手动关机
  • 可以通过bat或脚本关闭计算机?

关键词

  • win32
  • newstate
  • lpluid
  • tokenhandle
  • privileges
  • returnlength
  • token
  • ver
  • platform

得分解答快速导航

  • 帖主:stone800427

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo