////////////////////////////////////////////////////////////////////////////////
// 源程序名称：U_iniParam.pas
// 软件著作权：
//   系统名称：
//   模块名称：
//   功能说明：
//       作者：
//       审核：
////////////////////////////////////////////////////////////////////////////////
unit U_iniParam;

interface
uses
  IniFiles,SysUtils,Windows;
var
  Filename:string;      //文件名
  iParam2:integer;
  bParam1:Boolean;
  bParam2:Boolean;
  gUpdateFileServer:string;
  gDllName1:string;
  gDllInt1:integer;
  gDllName2:string;
  gDllInt2:integer;
  gAutoWinForm:string;
  gLastUserName:string;
  gMachOperators:string;
  Function IsINIFile():Boolean;  //判断InI配置文件是否存在
  procedure ReadINIFile();
  procedure WriteINIFile();
  procedure UpdateFileTime(FileName:string; CreationTime, LastAccessTime, LastWriteTime:TDateTime);
  procedure WriteTradeInspINIFile();
  procedure readTradeInspINIFile();
implementation
///////////////////////////////////////////////////////////////////
  //读取ini文件设置参数
  //参数：
////////////////////////////////////////////////////////////////////
procedure ReadINIFile();
var
  programIni:Tinifile;  //配置文件名
begin
  FileName:=ExtractFilePath(Paramstr(0))+'RTDEVICEEXE.INI';
  programIni:=Tinifile.create(FileName);
  gAutoWinForm:=programIni.ReadString('系统设置','自动打开窗口','1');
  gLastUserName:=programIni.ReadString('系统设置','最近登录账号','');
  programIni.Free;

  /////////////////////////
  try
    programIni := TIniFile.Create(Paramstr(0) + 'FileKPZ.INI');
    gDllName1 := programIni.ReadString('生产车间配置', 'DLL文件1','DjdMachineInsp.dll');
    gDllInt1 :=  programIni.ReadInteger('生产车间配置', 'DLL调用号1',1);
  finally
    programIni.Free;
  end;
  /////////////////////////
  try
    programIni := TIniFile.Create(Paramstr(0) + 'FileKPZ.INI');
    gDllName2 := programIni.ReadString('生产车间配置', 'DLL文件2','DjdMachineInsp.dll');
    gDllInt2 :=  programIni.ReadInteger('生产车间配置', 'DLL调用号2',1);
  finally
    programIni.Free;
  end;
end;
//////////////////////////////////////////////////////////////////
  //写设置信息到INI文件
  //参数
//////////////////////////////////////////////////////////////////
procedure WriteINIFile();
var
  programIni:Tinifile;  //配置文件名
begin
  FileName:=ExtractFilePath(Paramstr(0))+'RTDEVICEEXE.INI';
  programIni:=Tinifile.create(FileName);
  programIni.WriteString('系统设置','自动打开窗口',gAutoWinForm);
  if gLastUserName<>'' then
    programIni.WriteString('系统设置','最近登录账号',gLastUserName);
  programIni.Free;
end;
//////////////////////////////////////////////////////////////////
  //判断InI文件是否存在
//////////////////////////////////////////////////////////////////
 Function IsINIFile():Boolean;
 begin
   FileName:=ExtractFilePath(Paramstr(0))+'RTDEVICEEXE.INI';
   if FileExists(FileName) then
      Result:=true
   else
      Result:=false;
 end;
{-------------------------------------------------------------------------------
  过程名:    UpdateFileTime
  作者:      imcjs
  日期:      2011.02.12
  参数:      FileName:string; CreationTime, LastAccessTime, LastWriteTime:TDateTime
  说明：     修改指定文件的创建时间、访问时间、修改时间
-------------------------------------------------------------------------------}

procedure UpdateFileTime(FileName:string; CreationTime, LastAccessTime, LastWriteTime:TDateTime);
var
  FileHnd : Integer;
  SysTime : TSystemTime;
  tTzi: TTimezoneInformation;
  FCreationTime, FLastAccessTime, FLastWriteTime: TFileTime;
begin
  GetTimezoneInformation(tTzi) ;
  CreationTime := CreationTime+Ttzi.Bias/1440;
  DateTimeToSystemTime(CreationTime,SysTime);
  SystemTimeToFileTime(SysTime,FCreationTime);
  //LastAccessTime := LastAccessTime + Ttzi.Bias/1440;
  //DateTimeToSystemTime(LastAccessTime,SysTime);
  //SystemTimeToFileTime(SysTime,FLastAccessTime);
  LastWriteTime := LastWriteTime + Ttzi.Bias/1440;
  DateTimeToSystemTime(LastWriteTime,SysTime);
  SystemTimeToFileTime(SysTime,FLastWriteTime);
  try
    FileHnd := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
    SetFileTime(FileHnd, @FCreationTime, nil, @FLastWriteTime);
  finally
    FileClose(FileHnd);
  end;
end;
 

//////////////////////////////////////////////////////////////////
  //写设置信息到INI文件
  //参数
//////////////////////////////////////////////////////////////////
procedure WriteTradeInspINIFile();
var
  programIni:Tinifile;  //配置文件名
begin
  FileName:=ExtractFilePath(Paramstr(0))+'TradeInspFile.INI';
  programIni:=Tinifile.create(FileName);
  programIni.WriteString('生产车间配置', '机台操作员', gMachOperators);
end;
//////////////////////////////////////////////////////////////////
  //读设置信息到INI文件
  //参数
//////////////////////////////////////////////////////////////////
procedure readTradeInspINIFile();
var
  programIni:Tinifile;  //配置文件名
begin
  FileName:=ExtractFilePath(Paramstr(0))+'TradeInspFile.INI';
  programIni:=Tinifile.create(FileName);
  gMachOperators:=programIni.readString('生产车间配置', '机台操作员', '');
end;

end.
