_uc_reg_settings.pas

unit _uc_reg_settings;

interface

      uses Windows,classes,SysUtils,Registry,ComCtrls;


Type

    TExoSeeSettings = class
    public
    class procedure LoadSettings;
    class procedure SaveSettings;
    class procedure save_resume_info(nama,vala:string);

    class procedure _add_fav(_ss:string);
    class procedure _del_fav(_dd:string);
    class procedure _update_fav(_s:string);
    class procedure _loadFavs;
    end;

implementation

   uses Unit1,_uc_refs_consts,_uc_refs_vars,_uc_crypto;

//----------------------------------load_ini--------------------------------------------
class procedure TExoSeeSettings.LoadSettings;
var
reno:TRegIniFile;
s,str:string;
begin


reno :=TRegIniFile.Create('\Software');

//-------------------first----------------------------------------------
s:=TCrypto.kozkozo(reno.ReadString(_APPLICATION_REGISTRY_NAME ,'SfuID','0'));
(*
if reno.ReadString(_APPLICATION_REGISTRY_NAME ,'CupLevel','0')=s then
begin
  if (s[18]=s[2]) and (s[17]=s[3]) then
  _VV_LOCAL_USER_UPLOADS:=strtoint64def('$'+copy(s,6,9)+s[4]+s[5]+s[15]+s[16]+s[1]+s[2]+s[3],0)
  else _VV_LOCAL_USER_UPLOADS:=0;
end
else
begin
_VV_LOCAL_USER_UPLOADS:=0;
end;
*)
//-------------------------------


_VV_LOCAL_USER_NIKO :=reno.ReadString(_APPLICATION_REGISTRY_NAME,'NikName','');

if (_VV_LOCAL_USER_NIKO<>'') then begin
                                  str:=UpperCase(_VV_LOCAL_USER_NIKO);
                                  if (pos('EXOSEE',str)>0)
                                  or (pos('E.X.O.S.E.E',str)>0)
                                  or (pos('E X O S E E',str)>0)
                                  or (pos('EXO-SEE',str)>0)
                                  or (pos('EXO.SEE',str)>0)
                                  or (pos('EXOSE',str)>0)
                                  or (pos('XOSEE',str)>0)
                                  or (pos('XO-SEE',str)>0)
                                  or (pos('EXO-C',str)>0)
                                  or (pos('EXO.C',str)>0)
                                  or (pos('XO-C',str)>0)
                                  or (pos('XO.C',str)>0)
                                  or (pos('TO XOC',str)>0)
                                  or (pos('2XOC',str)>0)
                                  then _VV_LOCAL_USER_NIKO:='_xocUSER_!';
                                  end;




if (_VV_LOCAL_USER_NIKO='') then
begin
Randomize;
_VV_LOCAL_USER_NIKO:='_xocUSER_'+inttostr(random(4000));
end;


_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER:=reno.ReadString(_APPLICATION_REGISTRY_NAME,'DownloadsFolder','');
_VV_LOCAL_USER_NOT_ONLINE_MESSAGE   :=reno.ReadString(_APPLICATION_REGISTRY_NAME,'UserAwayMessage','....');

_VV_LOCAL_USER_MESSAGE :=reno.ReadString(_APPLICATION_REGISTRY_NAME,'UserMessage','Hi!');

_VV_LOCAL_CONFIG_I_ACCEPT_NO_LAN :=reno.Readbool(_APPLICATION_REGISTRY_NAME  ,'NoLanAccess',false);

_VV_LOCAL_CONFIG_BANNED_USERS_LIST:=reno.ReadString(_APPLICATION_REGISTRY_NAME,'BannedUsers','');
_VV_LOCAL_CONFIG_MAX_UPLOADS  :=reno.Readinteger(_APPLICATION_REGISTRY_NAME,'MaxUL',6);
_VV_LOCAL_CONFIG_ROUTER_IS_ON :=reno.Readbool(_APPLICATION_REGISTRY_NAME,'NatRouterOn',false);

_VV_LOCAL_CONFIG_EXPAND_SUBFOLDERS :=reno.Readbool(_APPLICATION_REGISTRY_NAME,'SubFoldersExpand',true);

_VV_LOCAL_CONFIG_ALLOW_WEB_XOC_LINKS :=reno.Readbool(_APPLICATION_REGISTRY_NAME,'WebXocLinksEnabled',true);


_APPLICATION_SYS_BOOT :=reno.Readbool(_APPLICATION_REGISTRY_NAME,'SysStartOn',false);


_VV_LOCAL_USER_LOGO_BYTE :=reno.Readinteger(_APPLICATION_REGISTRY_NAME,'UserLogo',$A0);



_VV_LOCAL_CONFIG_AUTO_ADD_COMS :=reno.ReadBool(_APPLICATION_REGISTRY_NAME,'ComsAddAuto',true);
_VV_LOCAL_AUTO_NOTIFY_NEW_VERSION :=reno.ReadBool(_APPLICATION_REGISTRY_NAME,'NewVersionNotify',true);


s :=reno.ReadString(_APPLICATION_REGISTRY_NAME,'UserStatus','A');
_VV_LOCAL_USER_ONLINE_STATUS:=s[1];


EXPLORER_PUBLIC_ROOTS.text :=StringReplace(reno.ReadString(_APPLICATION_REGISTRY_NAME,'SharedFolders',''),';',ret,[rfReplaceAll]);
EXPLORER_PRIVATE_ROOTS.text :=StringReplace(reno.ReadString(_APPLICATION_REGISTRY_NAME,'PrivateFolders',''),';',ret,[rfReplaceAll]);




USER_LAST_VERSION_IN :=reno.ReadInteger(_APPLICATION_REGISTRY_NAME,'ProgramVersion',0);
reno.writeinteger(_APPLICATION_REGISTRY_NAME,'ProgramVersion',_APPLICATION_VERSION_INT);
reno.Writestring(_APPLICATION_REGISTRY_NAME,'ProgramPath',paramstr(0));




if reno.OpenKey('\Control Panel',false)then // country code
begin
_VV_LOCAL_USER_COUNTRY_CODE:=reno.ReadString('International','iCountry','0');
reno.CloseKey;
end;
                                                            

if (_VV_LOCAL_CONFIG_ALLOW_WEB_XOC_LINKS) then
begin
// xoc:// protocol
reno.RootKey:=HKEY_CLASSES_ROOT;
reno.WriteString('xoc','','URL:ExoSeeWebLinkHandlerProtocol');
reno.WriteString('xoc','URL Protocol','');
reno.WriteString('xoc\shell\','','open');
reno.WriteString('xoc\shell\open','','');
reno.WriteString('xoc\shell\open\command','',paramstr(0)+' xoc "%1"');
end;


if (_VV_LOCAL_USER_MESSAGE<>'') then begin
                                  str:=UpperCase(_VV_LOCAL_USER_MESSAGE);
                                  if (pos('EXOSEE',str)>0)
                                  or (pos('E.X.O.S.E.E',str)>0)
                                  or (pos('E X O S E E',str)>0)
                                  or (pos('EXO-SEE',str)>0)
                                  or (pos('EXO.SEE',str)>0)
                                  or (pos('EXOSE',str)>0)
                                  or (pos('XOSEE',str)>0)
                                  or (pos('XO-SEE',str)>0)
                                  or (pos('EXO-C',str)>0)
                                  or (pos('EXO.C',str)>0)
                                  or (pos('XO-C',str)>0)
                                  or (pos('XO.C',str)>0)
                                  or (pos('TO XOC',str)>0)
                                  or (pos('2XOC',str)>0)
                                  then _VV_LOCAL_USER_MESSAGE:='Hi!';
                                  end;
// skin-extention
//reno.WriteString('.esk','','ExoSeeSkinFile');
//reno.WriteString('ExoSeeSkinFile\shell\open\command','',paramstr(0)+' "%1"');




(*
[HKEY_CLASSES_ROOT\stssync]
@="URL:Add SharePoint Folder"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\stssync\shell]
@="open"

[HKEY_CLASSES_ROOT\stssync\shell\open]
@=""

[HKEY_CLASSES_ROOT\stssync\shell\open\command]
@="<Path to exe> \"%1\""
*)
reno.Free;


end;

//----------------------------------save_ini--------------------------------------------

class procedure TExoSeeSettings.SaveSettings;
var
reno:TRegIniFile;
//s:string;
begin


reno:=TRegIniFile.Create('\Software');

reno.WriteString(_APPLICATION_REGISTRY_NAME,'NikName',_VV_LOCAL_USER_NIKO);
reno.WriteString(_APPLICATION_REGISTRY_NAME,'DownloadsFolder',_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER);
reno.WriteString(_APPLICATION_REGISTRY_NAME,'UserAwayMessage',_VV_LOCAL_USER_NOT_ONLINE_MESSAGE);

reno.WriteString(_APPLICATION_REGISTRY_NAME,'UserMessage',_VV_LOCAL_USER_MESSAGE);
reno.WriteBool(_APPLICATION_REGISTRY_NAME  ,'NoLanAccess',_VV_LOCAL_CONFIG_I_ACCEPT_NO_LAN);

//reno.WriteString(_APPLICATION_REGISTRY_NAME,'MyFavUsers',_VV_LOCAL_CONFIG_FAVORITES_LIST);
reno.WriteString(_APPLICATION_REGISTRY_NAME,'BannedUsers',_VV_LOCAL_CONFIG_BANNED_USERS_LIST);
reno.writeinteger(_APPLICATION_REGISTRY_NAME,'MaxUL',_VV_LOCAL_CONFIG_MAX_UPLOADS);
reno.WriteBool(_APPLICATION_REGISTRY_NAME   ,'NatRouterOn',_VV_LOCAL_CONFIG_ROUTER_IS_ON);
reno.WriteBool(_APPLICATION_REGISTRY_NAME   ,'SubFoldersExpand',_VV_LOCAL_CONFIG_EXPAND_SUBFOLDERS);

reno.WriteBool(_APPLICATION_REGISTRY_NAME   ,'WebXocLinksEnabled',_VV_LOCAL_CONFIG_ALLOW_WEB_XOC_LINKS);

reno.writeinteger(_APPLICATION_REGISTRY_NAME,'UserLogo',_VV_LOCAL_USER_LOGO_BYTE);



reno.WriteBool(_APPLICATION_REGISTRY_NAME,'SysStartOn',_APPLICATION_SYS_BOOT);
//reno.writeinteger(UZR_CFG,'BarPoz',fc.Pan_up.Height);

reno.WriteBool(_APPLICATION_REGISTRY_NAME,'ComsAddAuto',_VV_LOCAL_CONFIG_AUTO_ADD_COMS);
reno.WriteBool(_APPLICATION_REGISTRY_NAME,'NewVersionNotify',_VV_LOCAL_AUTO_NOTIFY_NEW_VERSION);


reno.WriteString(_APPLICATION_REGISTRY_NAME,'UserStatus',_VV_LOCAL_USER_ONLINE_STATUS);



reno.WriteString(_APPLICATION_REGISTRY_NAME,'SharedFolders',StringReplace(EXPLORER_PUBLIC_ROOTS.text,ret,';',[rfReplaceAll]));
reno.WriteString(_APPLICATION_REGISTRY_NAME,'PrivateFolders',StringReplace(EXPLORER_PRIVATE_ROOTS.text,ret,';',[rfReplaceAll]));


//user_ver_ini   :=reno.ReadInteger(UZR_CFG,'',0);
//reno.Writestring(UZR_CFG,'ProgramPath',paramstr(0));

(*
//-------------------------------------------
s:=inttohex(_VV_LOCAL_USER_UPLOADS,16);// 3FFFFFFFFF.2FF.4FF.1FFF+X_LOCAL_LEVEL(
s:=s[14]+s[15]+s[16]+s[10]+s[11]+copy(s,1,9)+s[12]+s[13]+s[16]+s[15] + inttohex(_VV_LOCAL_USER_UPLOADS,8);
reno.WriteString(_APPLICATION_REGISTRY_NAME ,'SfuID',TCrypto.bndaka(s));
reno.WriteString(_APPLICATION_REGISTRY_NAME ,'CupLevel',s);
*)

//--------------------------------------------
reno.Free;

end;

//------------------------------------------------------------------------------
class procedure TExoSeeSettings.save_resume_info(nama,vala:string);
var
reno:TRegIniFile;
begin

//005D61F93F1DFB1BCD=Firewalls\DeerField WinGate VPN 1.0.zip:;
//$$_01005D61F93F1DFB1BCDDeerField WinGate VPN 1.0.zip

reno:=TRegIniFile.Create('\Software\'+_APPLICATION_REGISTRY_NAME);
reno.WriteString('RezumeInfo',nama,vala);
reno.Free;

end;



//------------------------------------------------------------------------------
class procedure TExoSeeSettings._add_fav(_ss:string);
var
reg:tregistry;
begin

_VV_LOCAL_USER_FAVORITES_LIST := _VV_LOCAL_USER_FAVORITES_LIST+copy(_ss,1,10)+';';

// 1C080B2CD3xxA01000000%1Ismail%2F:\_Pc-Set\_Drivers%3
  Reg := TRegistry.Create;
  try
      if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Favorites',true)then
      begin
      Reg.WriteString(_ss,'');
      Reg.CloseKey;
      end;
  finally
  Reg.Free;
  end;

end;

//------------------------------------------------------------------------------
class procedure TExoSeeSettings._del_fav(_dd:string);
var
reg:tregistry;
xx:TStringList;
i:integer;
begin


// dd = id !!!
// dont care of full id !! we just corrupt favs-list removing id !!!,
// fav-list of app has no reg-save !!!
// 1C080B2CD3xxA01000000%1Ismail%2F:\_Pc-Set\_Drivers%3
_VV_LOCAL_USER_FAVORITES_LIST := StringReplace(_VV_LOCAL_USER_FAVORITES_LIST,_dd+';','',[rfReplaceAll]);

  Reg := TRegistry.Create;
  xx  :=TStringList.Create;
  try
      if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Favorites',true)then
      begin
      Reg.GetValueNames(xx);
         for i:=0 to xx.Count-1 do
         if (xx[i]<>'') and (copy(xx[i],1,10)=_dd) then
         begin
         reg.DeleteValue(xx[i]);
         // no break > del all match
         end;
      Reg.CloseKey;
      end;
  finally
  xx.free;
  Reg.Free;
  end;

end;

//------------------------------------------------------------------------------
class procedure TExoSeeSettings._update_fav(_s:string);
var
reg:tregistry;
xx:TStringList;
i:integer;
begin


// 1C080B2CD3xxA01000000%1Ismail%2F:\_Pc-Set\_Drivers%3

  Reg := TRegistry.Create;
  xx  :=TStringList.Create;
  try
      if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Favorites',true)then
      begin
      Reg.GetValueNames(xx);
         for i:=0 to xx.Count-1 do
         if (xx[i]<>'') and (copy(xx[i],1,10)=copy(_s,1,10)) then
         begin
         reg.DeleteValue(xx[i]);
         reg.WriteString(_s,'');
         // no break >> filter if any same-HDD-ID >> clean
         end;
      Reg.CloseKey;
      end;
  finally
  xx.free;
  Reg.Free;
  end;

end;

//------------------------------------------------------------------------------
class procedure TExoSeeSettings._loadFavs;
var
reg:tregistry;
xx:TStringList;
i:integer;
_NewFAVuz:TTreeNode;
s:string;
begin


// 1C080B2CD3xxA01000000%1Ismail%2F:\_Pc-Set\_Drivers%3


  Reg := TRegistry.Create;
  xx  :=TStringList.Create;
  try
      if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Favorites',true)then
      begin
      Reg.GetValueNames(xx);
         for i:=0 to xx.Count-1 do
         if xx[i]<>'' then begin
                           s:=copy(xx[i],pos('%1',xx[i])+2,pos('%2',xx[i])-pos('%1',xx[i])-2);  // name
                           _VV_LOCAL_USER_FAVORITES_LIST:=_VV_LOCAL_USER_FAVORITES_LIST+copy(xx[i],1,10)+';'; // fill list

                           _NewFAVuz:=_FXOC_MAIN._eExplorerTV.Items.AddChild(_TV_NODE_OF_FAVORITES,s);
                           _NewFAVuz.ImageIndex           :=6;
                           _NewFAVuz._EXO_NODE_USER_IP    :='';
                           _NewFAVuz._EXO_NODE_COUNTRY    :='';
                           _NewFAVuz._EXO_NODE_MESSAGE    :='';
                           _NewFAVuz._EXO_NODE_USER_ID    :=copy(xx[i],1,10); // set ID !!!!
                           _NewFAVuz._EXO_NODE_COM_IDX    :=xx[i]; // com idx of user used as FAV-CODE !!!!
                           //_zono._EXO_NODE_POZISIO  :=92;
                           _NewFAVuz._EXO_NODE_UZR_GMT    :='';
                           //_zono._EXO_NODE_UZR_ICO  :=strtointdef('$'+logo,0);
                           //if im=2 then v._EXO_NODE_POZISIO:=93;
                           _NewFAVuz._EXO_NODE_20BOOLS   :=''; // add user-boolz
                           _NewFAVuz._EXO_NODE_X_LEVEL   :='L';       // set level  inactive

                           _NewFAVuz._EXO_NODE_PATH_NB   :='00';// hexa roots
                           _NewFAVuz._EXO_NODE_PATH_TX   :='\';// roots
                           _NewFAVuz._EXO_NODE_XP_TYPE   :='*';// just a fill
                           _NewFAVuz._EXO_NODE_ROOT_HD   :=_NewFAVuz.ItemId; // fixed self
                           end;

      Reg.CloseKey;
      end;
  finally
  xx.free;
  Reg.Free;
  end;



_TV_NODE_OF_FAVORITES.Expand(false);


end;

end.





../delphi71code/exosee-code-source/uc_reg_settings-pas..