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