『スタパライフ』エージェント Ver1.10 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:    chkCollectionImage: TCheckBox;
  26:    chkUseCustomBrowser: TCheckBox;
  27:    procedure cmdOKClick(Sender: TObject);
  28:    procedure FormCreate(Sender: TObject);
  29:    procedure cmdJumpClick(Sender: TObject);
  30:    procedure cmdSaveClick(Sender: TObject);
  31:    procedure cmdExitClick(Sender: TObject);
  32:  private
  33:    { Private declarations }
  34:  public
  35:    { Public declarations }
  36:  end;
  37:
  38:var
  39:  stplInstall: TstplInstall;
  40:
  41:implementation
  42:
  43:{$R *.DFM}
  44:
  45:procedure TstplInstall.cmdOKClick(Sender: TObject);
  46:var
  47:  Item:TCabinetItem;
  48:  Folder:TCabinetItem;
  49:  FFolderCreated:Boolean;
  50:
  51:  userfile:string;
  52:  ItemCreated:Boolean;
  53:  Leg: TLegistry;
  54:begin
  55:  CreateDir(DataDir + '\stpl');
  56:  userfile := DataDir + '\stpl\user.dat';
  57:  if FileExists(userfile) then
  58:    Leg:=TLegistry.Create(userfile,lmOpenReadWrite,1024,1024,nil)
  59:  else
  60:    Leg:=TLegistry.Create(userfile,lmCreate,1024,1024,nil);
  61:
  62:  Leg.Signature:='STPL_INFO';
  63:  Leg.CreateKey('/common');
  64:  Leg.WriteString('/common/url',txtURL.text);
  65:  Leg.WriteString('/common/mbox','stpl\stpl.mbx');
  66:  Leg.WriteBool('/common/autobrowseropen',chkAutoBrowserOpen.Checked);
  67:  Leg.WriteBool('/common/UseCustomBrowser',chkUseCustomBrowser.Checked);
  68:  Leg.WriteBool('/common/CollectionImage',chkCollectionImage.Checked);
  69:  Leg.Free;
  70:
  71:  Folder:=CabinetManager.Find('diary');
  72:  if not Assigned(Folder) then begin
  73:    Folder:=TCabinetItem.Create(CabinetManager);
  74:    Folder.ItemType:=ctFolder;
  75:    Folder.Name:='diary';
  76:    Folder.Caption:='日記';
  77:    CabinetManager.Add(nil,Folder);
  78:    FFolderCreated:=True;
  79:  end else FFolderCreated:=False;
  80:  if not Assigned(CabinetManager.Find('diary$stpl')) then
  81:  begin
  82:    Item:=TCabinetItem.Create(CabinetManager);
  83:    Item.ItemType:=ctPlugin;
  84:    Item.Name := 'diary$stpl';
  85:    Item.Caption:='スタパライフ';
  86:    if chkUseCustomBrowser.Checked then begin
  87:      Item.PluginExecFileName:='stpl\stplBrowser.pas';
  88:    end else begin
  89:      Item.PluginExecFileName:='browser\unibrowser.pas';
  90:    end;
  91:    Item.PluginExecArg:='-H '+ txtURL.text +' -T スタパライフ stpl\stpl.mbx';
  92:    Item.PluginAutoFileName:='stpl\autostpl.rx';
  93:    Item.PluginAutoArg:='';
  94:    Item.PluginSetupFileName:='stpl\stpl.pas';
  95:    Item.PluginSetupArg:='';
  96:    CabinetManager.AddChild(Folder,Item);
  97:    Item.Free;
  98:  end;
  99:  if FFolderCreated then Folder.Free;
 100:  if not DirectoryExists(DataDir) then begin
 101:    if not ForceDirectories(DataDir) then begin
 102:      ShowMessage('ログフォルダ "'+DataDir+'" が作成できませんでした');
 103:    end;
 104:  end;
 105:  CabinetManager.Commit;
 106:  Close;
 107:end;
 108:
 109:procedure TstplInstall.FormCreate(Sender: TObject);
 110:var
 111:   userfile:string;
 112:   Leg:TLegistry;
 113:begin
 114:  if Assigned(CabinetManager.Find('diary$stpl')) then
 115:  begin
 116:    cmdOk.enabled:=False;
 117:    userfile := DataDir + '\stpl\user.dat';
 118:    if FileExists(userfile) then
 119:    begin
 120:      Leg:=TLegistry.Create(userfile,lmOpenRead,1024,1024,nil);
 121:      txtURL.Text:=Leg.ReadStringDef('/common/url','');
 122:      lblLocalLogFileName.Caption:=DataDir +'\'+Leg.ReadStringDef('/common/mbox','');
 123:      chkAutoBrowserOpen.Checked:=Leg.ReadBoolDef('/common/autobrowseropen',0);
 124:      chkUseCustomBrowser.Checked:=Leg.ReadBoolDef('/common/UseCustomBrowser',0);
 125:      chkCollectionImage.Checked:=Leg.ReadBoolDef('/common/CollectionImage',0);
 126:      Leg.Free;
 127:    end else
 128:    begin
 129:      txtURL.Text:='http://www.alt-r.com/di/toc5-0.html';
 130:      lblLocalLogFileName.Caption:=DataDir +'\'+ 'stpl\stpl.mbx';
 131:    end;
 132:  end else
 133:  begin
 134:    cmdSave.enabled:=False;
 135:    txtURL.Text:='http://www.alt-r.com/di/toc5-0.html';
 136:    lblLocalLogFileName.Caption:=DataDir +'\'+ 'stpl\stpl.mbx';
 137:  end;
 138:end;
 139:
 140:procedure TstplInstall.cmdJumpClick(Sender: TObject);
 141:begin
 142:  OpenBrowser(lblDownloadURL.caption);
 143:  close;
 144:end;
 145:
 146:procedure TstplInstall.cmdSaveClick(Sender: TObject);
 147:var
 148:  userfile:string;
 149:  ItemCreated:Boolean;
 150:  Leg: TLegistry;
 151:  Item:TCabinetItem;
 152:begin
 153:  CreateDir(DataDir + '\stpl');
 154:  userfile := DataDir + '\stpl\user.dat';
 155:  if FileExists(userfile) then
 156:    Leg:=TLegistry.Create(userfile,lmOpenReadWrite,1024,1024,nil)
 157:  else
 158:    Leg:=TLegistry.Create(userfile,lmCreate,1024,1024,nil);
 159:
 160:  Leg.Signature:='STPL_INFO';
 161:  Leg.CreateKey('/common');
 162:  Leg.WriteString('/common/url',txtURL.text);
 163:  Leg.WriteString('/common/mbox','stpl\stpl.mbx');
 164:  Leg.WriteBool('/common/autobrowseropen',chkAutoBrowserOpen.Checked);
 165:  Leg.WriteBool('/common/UseCustomBrowser',chkUseCustomBrowser.Checked);
 166:  Leg.WriteBool('/common/CollectionImage',chkCollectionImage.Checked);
 167:  Leg.Free;
 168:
 169:  Item:=CabinetManager.Find('diary$stpl');
 170:  if chkUseCustomBrowser.Checked then begin
 171:    Item.PluginExecFileName:='stpl\stplBrowser.pas';
 172:  end else begin
 173:    Item.PluginExecFileName:='browser\unibrowser.pas';
 174:  end;
 175:  CabinetManager.Commit;
 176:
 177:  close;
 178:
 179:end;
 180:
 181:procedure TstplInstall.cmdExitClick(Sender: TObject);
 182:begin
 183:  close;
 184:end;
 185:
 186:end.