📄 一起解剖灰鸽子vip1.2源码.txt
字号:
HgzVip.myinifile.writestring('FTP','Http',httpEdit.Text);
end else begin
HgzVip.myinifile.writestring('FTP','AutoSave','0');
HgzVip.myinifile.writestring('FTP','FTPServer','');
HgzVip.myinifile.writestring('FTP','FTPport','21');
HgzVip.myinifile.writestring('FTP','FTPUser','');
HgzVip.myinifile.writestring('FTP','Password','');
HgzVip.myinifile.writestring('FTP','IpFile','ip.jpg');
HgzVip.myinifile.writestring('FTP','Http','');
end;
except
end;
try
if RadioBox2.Checked then
begin
HgzVip.myinifile.writestring('Yuming','AutoSave','1');
HgzVip.Myinifile.writestring(YComboBox.Text, 'UserName', user126.Text);
HgzVip.Myinifile.writestring(YComboBox.Text, 'Passwd', EnCryptStr(spSkinEdit2.Text,'HUIGEZI'));
end else begin
HgzVip.myinifile.writestring('Yuming','AutoSave','0');
HgzVip.Myinifile.writestring(YComboBox.Text, 'UserName', '');
HgzVip.Myinifile.writestring(YComboBox.Text, 'Passwd', '');
end;
except
end;
try
if CheckRadioBox1.Checked then
begin
HgzVip.myinifile.writestring('DNSYuming','AutoSave','1');
HgzVip.myinifile.writestring('DNSYuming','Dns',XwEdit.text);
HgzVip.myinifile.writestring('DNSYuming','User',Xwuser.text);
HgzVip.myinifile.writestring('DNSYuming','Password',EnCryptStr(Xwpass.text,'HUIGEZI'));
end else begin
HgzVip.myinifile.writestring('DNSYuming','AutoSave','0');
HgzVip.myinifile.writestring('DNSYuming','User','');
HgzVip.myinifile.writestring('DNSYuming','Password','');
end;
except
end;
end;
//这个按钮 就是 希网动态域名更新IP的按钮,同样后面也是用一个多线程对象(TXWDnsThread.Create(false);)来实现的
procedure TUpIpDate.XWButtonClick(Sender: TObject);
begin
if XwEdit.Text='' then
begin
Label1.Caption:=Translate('String18','对不起!好像您没有填写域名噢!请您填上吧!');
Exit;
end;
if Xwuser.Text='' then
begin
Label1.Caption:=Translate('String24','对不起!请填写用户名!');
Exit;
end;
if Xwpass.Text='' then
begin
Label1.Caption:=Translate('String21','对不起!请填写密码!');
Exit;
end;
XWButton.Enabled:=False;
Label1.Caption:=Translate('String25','开始更新IP地址到域名...');
TXWDnsThread.Create(false);
end;
//点相应连接,打开IE连接其
procedure TUpIpDate.Label16Click(Sender: TObject);
begin
ShellExecute(0, 'Open', pchar('http://www.3322.org'),nil, nil, SW_Show);
end;
//同样是保存信息到配置文件,看到了吧,要实现便捷的功能,作者要写很多语句来实现的哦,真实不得不感谢作者的辛苦
procedure TUpIpDate.CheckRadioBox1Click(Sender: TObject);
begin
try
if CheckRadioBox1.Checked then
begin
HgzVip.myinifile.writestring('DNSYuming','AutoSave','1');
HgzVip.myinifile.writestring('DNSYuming','Dns',XwEdit.text);
HgzVip.myinifile.writestring('DNSYuming','User',Xwuser.text);
HgzVip.myinifile.writestring('DNSYuming','Password',EnCryptStr(Xwpass.text,'HUIGEZI'));
end else begin
HgzVip.myinifile.writestring('DNSYuming','AutoSave','0');
HgzVip.myinifile.writestring('DNSYuming','User','');
HgzVip.myinifile.writestring('DNSYuming','Password','');
end;
except
end;
end;
//理解同上,不用我再打字了吧,累死了。。。。汗。。。
procedure TUpIpDate.Label11Click(Sender: TObject);
begin
ShellExecute(0, 'Open','http://my.126.com/',nil, nil, SW_Show);
end;
//如果输入框user126 有输入,就是变化啦,更新配置文件,
procedure TUpIpDate.user126Change(Sender: TObject);
begin
try
if RadioBox2.Checked then
begin
if YComboBox.ItemIndex =0 then
HgzVip.Myinifile.writestring('.126.com', 'UserName', user126.Text);
if YComboBox.ItemIndex =1 then
HgzVip.Myinifile.writestring('.yeah.net', 'UserName', user126.Text);
end;
except
end;
end;
//理解同上。。
procedure TUpIpDate.spSkinEdit2Change(Sender: TObject);
begin
try
if RadioBox2.Checked then
begin
if YComboBox.ItemIndex =0 then
HgzVip.Myinifile.writestring('.126.com', 'Passwd', EnCryptStr(spSkinEdit2.Text,'HUIGEZI'));
if YComboBox.ItemIndex =1 then
HgzVip.Myinifile.writestring('.yeah.net', 'Passwd', EnCryptStr(spSkinEdit2.Text,'HUIGEZI'));
end;
except
end;
end;
//
procedure TUpIpDate.YComboBoxClick(Sender: TObject);
begin
try
if YComboBox.ItemIndex =0 then
begin
user126.Text:=HgzVip.myinifile.Readstring('.126.com', 'UserName', '');
//这里值得讲一下的是,要用解密函数来进行解密保存在配置文件里的密码值,这里用的key是huigezi
// spSkinEdit2 和 pass126 都是密码框它们一个只是做一致性匹配
spSkinEdit2.Text:=DeCryptStr(HgzVip.myinifile.Readstring('.126.com', 'Passwd', ''),'HUIGEZI');
pass126.Text:=DeCryptStr(HgzVip.myinifile.Readstring('.126.com', 'Passwd', ''),'HUIGEZI');
end;
if YComboBox.ItemIndex =1 then
begin
user126.Text:=HgzVip.myinifile.Readstring('.yeah.net', 'UserName', '');
spSkinEdit2.Text:=DeCryptStr(HgzVip.myinifile.Readstring('.yeah.net', 'Passwd', ''),'HUIGEZI');
pass126.Text:=DeCryptStr(HgzVip.myinifile.Readstring('.yeah.net', 'Passwd', ''),'HUIGEZI');
end;
except
end;
end;
//上传成功的处理,提示信息和断开连接
procedure TUpIpDate.NMFTP1Success(Trans_Type: TCmdType);
begin
//Label1.Caption :='成功.';
if Trans_Type=cmdUpload then
begin
AfterGetFile(nil);
//上面有定义好的,主要是用来上传后信息提示和声音播放的,还记得么?不记得看上面
//疑点:定义的时候 参数类型是 TOBJECT 的,这里可以用nil做参数???
NMFTP1.Disconnect; //断开ftp
end;
end;
//连接 ftp的时候的各种信息反馈
procedure TUpIpDate.NMFTP1Connect(Sender: TObject);
begin
Label1.Caption :=Translate('String26','连接FTP成功.');
end;
procedure TUpIpDate.NMFTP1ConnectionFailed(Sender: TObject);
begin
Label1.Caption :=Translate('String27','连接FTP失败.');;
end;
procedure TUpIpDate.NMFTP1Error(Sender: TComponent; Errno: Word;
Errmsg: String);
begin
Label1.Caption :='Error..';
end;
procedure TUpIpDate.NMFTP1Status(Sender: TComponent; Status: String);
begin
Label1.Caption :=Status;
end;
end.
//咳,终于看完这个东西了,打字累死了,不过值得,因为又学了不少东西哇。
//首先 classname 原来是可以做全局变量获取一个类名称的
//然后学到的是加密字串的解密函数应用
//FTP控件的使用
//HTTP控件的运用
//还有配置文件的读写
//还有字符串函数的替换和查找。。。
//你收获了多少呢?
我们继续分解 看系统设置框的代码
unit SysInf;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DynamicSkinForm, SkinCtrls, StdCtrls, SkinBoxCtrls, ComCtrls,
SkinTabs, Mask,mmsystem, LangFrm;
type
TSysShezhi = class(TLangForm)
PageControl1: TspSkinPageControl;
spDynamicSkinForm1: TspDynamicSkinForm;
TabSheet1: TspSkinTabSheet;
RadioBox1: TspSkinCheckRadioBox;
Label1: TspSkinStdLabel;
Label2: TspSkinStdLabel;
Label3: TspSkinStdLabel;
Label5: TspSkinStdLabel;
Label4: TspSkinStdLabel;
Button1: TspSkinButton;
Button2: TspSkinButton;
Button3: TspSkinButton;
Button4: TspSkinButton;
Button5: TspSkinButton;
FilenameEdit1: TspSkinEdit;
FilenameEdit2: TspSkinEdit;
FilenameEdit3: TspSkinEdit;
FilenameEdit4: TspSkinEdit;
FilenameEdit5: TspSkinEdit;
OpenDialog1: TOpenDialog;
TabSheet2: TspSkinTabSheet;
Label6: TspSkinStdLabel;
TimerEdit: TspSkinEdit;
Label7: TspSkinStdLabel;
spSkinStdLabel3: TspSkinStdLabel;
Label8: TspSkinStdLabel;
PortEdit: TspSkinEdit;
Button6: TspSkinButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FilenameEdit1Change(Sender: TObject);
procedure FilenameEdit2Change(Sender: TObject);
procedure FilenameEdit3Change(Sender: TObject);
procedure FilenameEdit4Change(Sender: TObject);
procedure FilenameEdit5Change(Sender: TObject);
procedure RadioBox1Click(Sender: TObject);
procedure FilenameEdit1ButtonClick(Sender: TObject);
procedure FilenameEdit2ButtonClick(Sender: TObject);
procedure FilenameEdit3ButtonClick(Sender: TObject);
procedure FilenameEdit4ButtonClick(Sender: TObject);
procedure FilenameEdit5ButtonClick(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
SysShezhi: TSysShezhi;
implementation
uses
Main;
{$R *.dfm}
//这几个按钮是播放声音的,有没有发现,每次都要播放一次空文件?
//做用什么?不太明白,不管它,反正知道怎么用就好了
procedure TSysShezhi.Button1Click(Sender: TObject);
begin
try
sndplaysound('',snd_async);
sndplaysound(Pchar(FilenameEdit1.Text),snd_async);
except
end;
end;
procedure TSysShezhi.Button2Click(Sender: TObject);
begin
try
sndplaysound('',snd_async);
sndplaysound(Pchar(FilenameEdit2.Text),snd_async);
except
end;
end;
procedure TSysShezhi.Button3Click(Sender: TObject);
begin
try
sndplaysound('',snd_async);
sndplaysound(Pchar(FilenameEdit3.Text),snd_async);
except
end;
end;
procedure TSysShezhi.Button4Click(Sender: TObject);
begin
try
sndplaysound('',snd_async);
sndplaysound(Pchar(FilenameEdit4.Text),snd_async);
except
end;
end;
procedure TSysShezhi.Button5Click(Sender: TObject);
begin
try
sndplaysound('',snd_async);
sndplaysound(Pchar(FilenameEdit5.Text),snd_async);
except
end;
end;
//当输入框有变化的时候,写入配置文件
procedure TSysShezhi.FilenameEdit1Change(Sender: TObject);
begin
try
HgzVip.Myinifile.writestring('Operation', 'Sound1', FilenameEdit1.Text);
HgzVip.OnSLine:= FilenameEdit1.Text;
except
end;
end;
procedure TSysShezhi.FilenameEdit2Change(Sender: TObject);
begin
try
HgzVip.Myinifile.writestring('Operation', 'Sound2', FilenameEdit2.Text);
HgzVip.OffSLine:=FilenameEdit2.Text;
except
end;
end;
procedure TSysShezhi.FilenameEdit3Change(Sender: TObject);
begin
try
HgzVip.Myinifile.writestring('Operation', 'Sound3', FilenameEdit3.Text);
HgzVip.UpIPok:=FilenameEdit3.Text;
except
end;
end;
procedure TSysShezhi.FilenameEdit4Change(Sender: TObject);
begin
try
HgzVip.Myinifile.writestring('Operation', 'Sound4', FilenameEdit4.Text);
HgzVip.FileSup:=FilenameEdit4.Text;
except
end;
end;
procedure TSysShezhi.FilenameEdit5Change(Sender: TObject);
begin
try
HgzVip.Myinifile.writestring('Operation', 'Sound5', FilenameEdit5.Text);
HgzVip.FileSDown:= FilenameEdit5.Text;
except
end;
end;
//这里是判断打勾与否,然后改变HgzVip.isSound:=True;的值,
//顺便把播放声音与否的选项配置写进配置文件里
procedure TSysShezhi.RadioBox1Click(Sender: TObject);
begin
if RadioBox1.Checked then
begin
HgzVip.isSound:=True;
HgzVip.Myinifile.writestring('Operation', 'OnSound','1')
end else begin
HgzVip.isSound:=True;
HgzVip.Myinifile.writestring('Operation', 'OnSound','0');
end;
end;
//这个是点击文本框右边的按钮事件,打开一个打开文件框 选定一个文件
procedure TSysShezhi.FilenameEdit1ButtonClick(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -