修改系统时间

function   SetPrivilege(  
      sPrivilegeName   :   string;  
      bEnabled   :   boolean   )  
          :   boolean;  
  var  
      TPPrev,  
      TP                   :   TTokenPrivileges;  
      Token             :   THandle;  
      dwRetLen       :   DWord;  
  begin  
      Result   :=   False;  
   
      OpenProcessToken(  
          GetCurrentProcess,  
          TOKEN_ADJUST_PRIVILEGES  
          or   TOKEN_QUERY,   
          Token   );  
   
      TP.PrivilegeCount   :=   1;  
      if(   LookupPrivilegeValue(  
                  Nil,  
                  PChar(   sPrivilegeName   ),  
                  TP.Privileges[   0   ].LUID   )   )then  
      begin  
          if(   bEnabled   )then  
          begin  
              TP.Privileges[   0   ].Attributes     :=  
                  SE_PRIVILEGE_ENABLED;  
          end   else  
          begin  
              TP.Privileges[   0   ].Attributes     :=  
                  0;  
          end;  
   
          dwRetLen   :=   0;  
          Result   :=   AdjustTokenPrivileges(  
                                  Token,  
                                  False,  
                                  TP,  
                                  SizeOf(   TPPrev   ),  
                                  TPPrev,  
                                  dwRetLen   );  
      end;  
   
      CloseHandle(   Token   );  
  end;  
   
  procedure   ChangeSystemTime;  
  var  
      st   :   TSystemTime;  
  begin  
      if(   SetPrivilege(  
                  'SeSystemtimePrivilege',  
                  True   )   )then  
      begin  
          GetLocalTime(   st   );  
   
          //  
          //   change   time   using   st   structure  
          //   for   example,   to   10:30pm  
          //  
          st.wHour   :=   22;  
          st.wMinute   :=   30;  
   
          SetLocalTime(   st   );  
          //   or   :  
          //   SetSystemTime(   st   );  
   
          SetPrivilege(  
              'SeSystemtimePrivilege',  
              False   );  
      end;  
  end; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值