| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:第二天的关机程序实现不了
只看楼主 加入收藏
s912360101
Rank: 3Rank: 3
来 自:山西
等 级:论坛游侠
帖 子:168
专家分:147
注 册:2009-3-15
结帖率:85%
收藏
已结贴  问题点数:4 回复次数:4 
第二天的关机程序实现不了
有个朋友拜托我写了一个程序,第二天的凌晨2点关机的,可是第二天的时候我去单位的机房一看,居然没有关机,下面是代码,白天的时候成功了,GOOGLE和BAIDU了,也没有什么好的结果,哎~```
程序代码:
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Timer2: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    procedure GetPrivilege;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.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;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Form1.Hide;
   Timer2.Enabled:=True;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
    if TimetoStr(Time)='2:15:00' then
    begin
      GetPrivilege;
      ExitWindowsEx(EWX_SHUTDOWN OR EWX_POWEROFF, 0); 
    end;
end;
end.

搜索更多相关主题的帖子: class procedure Windows GOOGLE 
2011-09-10 10:35
s912360101
Rank: 3Rank: 3
来 自:山西
等 级:论坛游侠
帖 子:168
专家分:147
注 册:2009-3-15
收藏
得分:0 
太丟人,,,自己

孤独是一个人的狂欢
2011-09-10 10:37
yuutian
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:137
专家分:686
注 册:2010-10-27
收藏
得分:2 
呵呵,知道问题了
2011-09-12 21:30
冰蟾子
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:498
专家分:109
注 册:2006-4-14
收藏
得分:2 
没测试关机的代码,不过如果你的电脑日期格式为hh:mm:ss话的
不如把
if TimetoStr(Time)='2:15:00' then  //改为if Time = StrToTime('2:15:00') then试试
希望对你有帮助

欢迎到我的blog做客。。。。。。。。
2011-09-13 14:42
ddkk123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-30
收藏
得分:0 
改为:
  If FormatDateTime('HH:MM:SS',Time)='02:15:00' Then
2011-12-03 20:04
快速回复:第二天的关机程序实现不了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020647 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved