『スタパライフ』エージェント Ver1.01 stpl.pas




   0:unit stplInstall;
   1:
   2:interface
   3:
   4:uses
   5:  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   6:  StdCtrls;
   7:
   8:type
   9:  TstplInstall = class(TForm)
  10:    cmdOK: TButton;
  11:    lblAgentName: TLabel;
  12:    Label2: TLabel;
  13:    Label3: TLabel;
  14:    lblAgentVersion: TLabel;
  15:    Label5: TLabel;
  16:    Label6: TLabel;
  17:    lblLocalLogFileName: TLabel;
  18:    Label7: TLabel;
  19:    cmdJump: TButton;
  20:    lblDownloadURL: TLabel;
  21:    txtURL: TEdit;
  22:    Label8: TLabel;
  23:    txtDeleteKey: TEdit;
  24:    chkAutoBrowserOpen: TCheckBox;
  25:    procedure cmdOKClick(Sender: TObject);
  26:    procedure FormCreate(Sender: TObject);
  27:    procedure cmdJumpClick(Sender: TObject);
  28:    procedure cmdSaveClick(Sender: TObject);
  29:    procedure cmdExitClick(Sender: TObject);
  30:  private
  31:    { Private declarations }
  32:  public
  33:    { Public declarations }
  34:  end;
  35:
  36:var
  37:  stplInstall: TstplInstall;
  38:
  39:implementation
  40:
  41:{$R *.DFM}
  42:
  43:procedure TstplInstall.cmdOKClick(Sender: TObject);
  44:var
  45:  Item:TCabinetItem;
  46:  Folder:TCabinetItem;
  47:  FFolderCreated:Boolean;
  48:
  49:  userfile:string;
  50:  ItemCreated:Boolean;
  51:  Leg: TLegistry;
  52:begin
  53:  CreateDir(DataDir + '\stpl');
  54:  userfile := DataDir + '\stpl\user.dat';
  55:  if FileExists(userfile) then
  56:    Leg:=TLegistry.Create(userfile,lmOpenReadWrite,1024,1024,nil)
  57:  else
  58:    Leg:=TLegistry.Create(userfile,lmCreate,1024,1024,nil);
  59:
  60:  Leg.Signature:='STPL_INFO';
  61:  Leg.CreateKey('/common');
  62:  Leg.WriteString('/common/url',txtURL.text);
  63:  Leg.WriteString('/common/mbox','stpl\stpl.mbx');
  64:  Leg.Free;
  65:
  66:  Folder:=CabinetManager.Find('diary');
  67:  if not Assigned(Folder) then begin
  68:    Folder:=TCabinetItem.Create(CabinetManager);
  69:    Folder.ItemType:=ctFolder;
  70:    Folder.Name:='diary';
  71:    Folder.Caption:='日記';
  72:    CabinetManager.Add(nil,Folder);
  73:    FFolderCreated:=True;
  74:  end else FFolderCreated:=False;
  75:  if not Assigned(CabinetManager.Find('diary$stpl')) then
  76:  begin
  77:    Item:=TCabinetItem.Create(CabinetManager);
  78:    Item.ItemType:=ctPlugin;
  79:    Item.Name := 'diary$stpl';
  80:    Item.Caption:='スタパライフ';
  81:    Item.PluginExecFileName:='stpl\openstpl.rx';
  82:    Item.PluginExecArg:='';
  83:    Item.PluginAutoFileName:='stpl\autostpl.rx';
  84:    Item.PluginAutoArg:='';
  85:    Item.PluginSetupFileName:='stpl\stpl.pas';
  86:    Item.PluginSetupArg:='';
  87:    CabinetManager.AddChild(Folder,Item);
  88:    Item.Free;
  89:  end;
  90:  if FFolderCreated then Folder.Free;
  91:  if not DirectoryExists(DataDir) then begin
  92:    if not ForceDirectories(DataDir) then begin
  93:      ShowMessage('ログフォルダ "'+DataDir+'" が作成できませんでした');
  94:    end;
  95:  end;
  96:  CabinetManager.Commit;
  97:  Close;
  98:end;
  99:
 100:procedure TstplInstall.FormCreate(Sender: TObject);
 101:var
 102:   userfile:string;
 103:   Leg:TLegistry;
 104:begin
 105:  if Assigned(CabinetManager.Find('diary$stpl')) then
 106:  begin
 107:    cmdOk.enabled:=False;
 108:    userfile := DataDir + '\stpl\user.dat';
 109:    if FileExists(userfile) then
 110:    begin
 111:      Leg:=TLegistry.Create(userfile,lmOpenRead,1024,1024,nil);
 112:      txtURL.Text:=Leg.ReadStringDef('/common/url','');
 113:      lblLocalLogFileName.Caption:=DataDir +'\'+Leg.ReadStringDef('/common/mbox','');
 114:      chkAutoBrowserOpen.Checked:=Leg.ReadBoolDef('/common/autobrowseropen',0);
 115:      Leg.Free;
 116:    end else
 117:    begin
 118:      txtURL.Text:='http://www.alt-r.com/di/toc5-0.html';
 119:      lblLocalLogFileName.Caption:=DataDir +'\'+ 'stpl\stpl.mbx';
 120:    end;
 121:  end else
 122:  begin
 123:    cmdSave.enabled:=False;
 124:    txtURL.Text:='http://www.alt-r.com/di/toc5-0.html';
 125:    lblLocalLogFileName.Caption:=DataDir +'\'+ 'stpl\stpl.mbx';
 126:  end;
 127:end;
 128:
 129:procedure TstplInstall.cmdJumpClick(Sender: TObject);
 130:begin
 131:  OpenBrowser(lblDownloadURL.caption);
 132:  close;
 133:end;
 134:
 135:procedure TstplInstall.cmdSaveClick(Sender: TObject);
 136:var
 137:  userfile:string;
 138:  ItemCreated:Boolean;
 139:  Leg: TLegistry;
 140:begin
 141:  CreateDir(DataDir + '\stpl');
 142:  userfile := DataDir + '\stpl\user.dat';
 143:  if FileExists(userfile) then
 144:    Leg:=TLegistry.Create(userfile,lmOpenReadWrite,1024,1024,nil)
 145:  else
 146:    Leg:=TLegistry.Create(userfile,lmCreate,1024,1024,nil);
 147:
 148:  Leg.Signature:='STPL_INFO';
 149:  Leg.CreateKey('/common');
 150:  Leg.WriteString('/common/url',txtURL.text);
 151:  Leg.WriteString('/common/mbox','stpl\stpl.mbx');
 152:  Leg.WriteBool('/common/autobrowseropen',chkAutoBrowserOpen.Checked);
 153:  Leg.Free;
 154:
 155:  close;
 156:end;
 157:
 158:procedure TstplInstall.cmdExitClick(Sender: TObject);
 159:begin
 160:  close;
 161:end;
 162:
 163:end.