⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unittimetoclose1.~pas

📁 我为某旅游局开发 的评委评估系统
💻 ~PAS
字号:
unit UnitTimeToClose1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes,strutils, Graphics,dateutils, Controls, Forms,
  Dialogs,inifiles, ExtCtrls, StdCtrls,registry, ComCtrls, Menus;

type
  TFormTimeToClose = class(TForm)
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    UpDown1: TUpDown;
    Edit1: TEdit;
    UpDown2: TUpDown;
    Edit2: TEdit;
    UpDown3: TUpDown;
    Edit3: TEdit;
    CheckBox1: TCheckBox;
    Bevel1: TBevel;
    Timer1: TTimer;
    Button1: TButton;
    CheckBox3: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
    procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
    procedure UpDown3Click(Sender: TObject; Button: TUDBtnType);
    procedure Edit1Click(Sender: TObject);
    procedure Edit2Click(Sender: TObject);
    procedure Edit3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure AdjustToken();
    procedure settime();
    procedure FormShow(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);

  private
  shuttime:string;
  tishi:boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormTimeToClose: TFormTimeToClose;

implementation

uses UnitTimeToClose2;


{$R *.dfm}

procedure TFormTimeToClose.FormCreate(Sender: TObject);
var myini:tinifile;filename:string;

begin

Filename:=ExtractFilePath(Paramstr(0))+'info.ini';
myini:=Tinifile.create(filename);
self.CheckBox1.Checked:=myini.Readbool('shutdown','shut',true);
self.Edit1.Text:=myini.ReadString('time','hour','22');
self.Edit2.Text:=myini.ReadString('time','minute','45');
self.CheckBox3.Checked:=myini.Readbool('hint','tishi',true);
myini.Free;

 self.settime;
 if shuttime='' then
  shuttime:='22:45:00';
  tishi:=true;
 if strtotime(shuttime)<=time() then
   begin
    checkbox1.Checked:=false;
   end;

end;

procedure TFormTimeToClose.Timer1Timer(Sender: TObject);
var myt:string;
FormTimeToCloseWarm:tFormTimeToCloseWarm;
begin
 if self.CheckBox1.Checked then
  begin
   if strtotime(shuttime)<=time() then
     begin
      self.AdjustToken;
      ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0);
     end;
  end;
 
  if checkbox3.Checked then
  begin
  if tishi then
   begin
    if checkbox1.Checked then
     begin
      try
       myt:=datetimetostr(incminute(strtodatetime('2003-10-25 '+shuttime),-5));
       myt:=rightstr(trim(myt),8);
       if strtotime(myt)<=time() then
        begin
         tishi:=false;
          try
         FormTimeToCloseWarm:=tFormTimeToCloseWarm.Create(self);
         FormTimeToCloseWarm.ShowModal;
         finally
         FormTimeToCloseWarm.Free;
        end;
       end; 
       except
      end;
     end;
   end;
  end;
end;

procedure TFormTimeToClose.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
  edit1.Text:=inttostr(self.UpDown1.Position);
end;

procedure TFormTimeToClose.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
edit2.Text:=inttostr(self.UpDown2.Position);
end;

procedure TFormTimeToClose.UpDown3Click(Sender: TObject; Button: TUDBtnType);
begin
edit3.Text:=inttostr(self.UpDown3.Position);
end;

procedure TFormTimeToClose.Edit1Click(Sender: TObject);
begin
self.Edit1.SelectAll;
end;

procedure TFormTimeToClose.Edit2Click(Sender: TObject);
begin
self.Edit2.SelectAll;
end;

procedure TFormTimeToClose.Edit3Click(Sender: TObject);
begin
self.Edit3.SelectAll;
end;

procedure TFormTimeToClose.Button1Click(Sender: TObject);
var myini:tinifile; filename:string;
begin
self.settime;
Filename:=ExtractFilePath(Paramstr(0))+'info.ini';
myini:=Tinifile.create(filename);
 myini.WriteBool('shutdown','shut',checkbox1.Checked);
 if (edit1.Text<>'') and (edit2.Text<>'') then
  begin
   myini.WriteString('time','hour',edit1.Text);
   myini.WriteString('time','minute',edit2.Text);
  end;

myini.WriteBool('hint','tishi',checkbox3.Checked);
myini.Free;

self.Close;
   //self.Caption:=shuttime;
end;

procedure TFormTimeToClose.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not((key in ['0'..'9',#8])) then
  begin
   key:=#0;
   edit1.Clear;
   edit1.SetFocus;
  end;
end;

procedure TFormTimeToClose.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
 if not((key in ['0'..'9',#8])) then
  begin
   key:=#0;
   edit2.Clear;
   edit2.SetFocus;
  end;
end;

procedure TFormTimeToClose.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
 if not((key in ['0'..'9',#8])) then
  begin
   key:=#0;
   edit3.Clear;
   edit3.SetFocus;
  end;
end;


procedure TFormTimeToClose.AdjustToken();
var
  hdlProcessHandle : Cardinal;
  hdlTokenHandle : Cardinal;
  tmpLuid : Int64;
  tkp : TOKEN_PRIVILEGES;
  tkpNewButIgnored : TOKEN_PRIVILEGES;
  lBufferNeeded : Cardinal;
  Privilege : array[0..0] of _LUID_AND_ATTRIBUTES;
begin
         hdlProcessHandle := GetCurrentProcess;
         OpenProcessToken(hdlProcessHandle,
                         (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY),
                          hdlTokenHandle);

         // Get the LUID for shutdown privilege.
         LookupPrivilegeValue('', 'SeShutdownPrivilege', tmpLuid);
         Privilege[0].Luid := tmpLuid;
         Privilege[0].Attributes := SE_PRIVILEGE_ENABLED;
         tkp.PrivilegeCount := 1;   // One privilege to set
         tkp.Privileges[0] := Privilege[0];
         // Enable the shutdown privilege in the access token of this
         // process.
         AdjustTokenPrivileges(hdlTokenHandle,
                               False,
                               tkp,
                               Sizeof(tkpNewButIgnored),
                               tkpNewButIgnored,
                               lBufferNeeded);

end;

procedure TFormTimeToClose.settime();
begin
if (self.Edit1.Text<>'') and (edit2.Text<>'') and (edit3.Text<>'') then
 begin
  if length(trim(edit1.Text))=1 then
   shuttime:='0'+edit1.Text else
   shuttime:=edit1.Text;

 if length(trim(edit2.Text))=1 then
   shuttime:=shuttime+':'+'0'+edit2.Text else
   shuttime:=shuttime+':'+edit2.Text;

    if length(trim(edit3.Text))=1 then
   shuttime:=shuttime+':'+'0'+edit3.Text else
   shuttime:=shuttime+':'+edit3.Text;
 end;
end;

procedure TFormTimeToClose.FormShow(Sender: TObject);
begin
  timer1.Interval:=5000;
end;

procedure TFormTimeToClose.CheckBox1Click(Sender: TObject);
begin
 self.settime;
 if (checkbox1.Checked) and (strtotime(shuttime)<=time()) then
 begin
 checkbox1.Checked:=false;
 showmessage('设定的时间比现在时间早!');
 end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -