|
說(shuō)起迅雷廣告這類(lèi)的彈出窗口提示,簡(jiǎn)直讓我無(wú)法忍受,廣告總屏蔽不了,可惡。
不過(guò)這類(lèi)的窗口有的確實(shí)做得很好,開(kāi)機(jī)時(shí)間、地理信息、IP地址、本地時(shí)間,甚至是天氣預(yù)報(bào),它都可以給你顯示出來(lái),讓我佩服的是即使是斷網(wǎng)的情況下,有的也可以顯示出這些信息,好比360的開(kāi)機(jī)助手,本人的開(kāi)機(jī)速度簡(jiǎn)直是弱爆了,所以就不上圖了。
所以,今天,我就來(lái)獻(xiàn)上我個(gè)人的窗口提示,呵呵。
程序是用delphi平臺(tái)寫(xiě)的。
界面布局:

其中sLabel1.Caption是顯示消息內(nèi)容,sLabel2.Caption是顯示上次時(shí)間,sLabel3.Caption是顯示上次地點(diǎn);Image2是顯示木馬的圖像,Image1是顯示背景;SpeedButton1是查看按鈕;使用AlphaLite皮膚控件,自己做的皮膚還是有點(diǎn)bug的。
代碼:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, sSkinManager, ExtCtrls, StdCtrls, Buttons, sBitBtn, sLabel ,inifiles,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, ShellApi;
type
TForm1 = class(TForm)
sSkinManager1: TsSkinManager;
Image1: TImage;
sLabel1: TsLabel;
Image2: TImage;
sLabel2: TsLabel;
IdHTTP1: TIdHTTP;
sLabel3: TsLabel;
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
function GetWebPage(const Url:string;IsUtf8:Boolean=False):string;
public
{ Public declarations }
end;
const
str:array[0..7] of string=(
'我是木馬!呵呵!',
'【雷友特權(quán)】國(guó)慶專(zhuān)題活動(dòng)四!玩《醉西游》領(lǐng)取迅雷會(huì)員!',
'親!',
'黃金周今結(jié)束 北京7大高速恐擁堵至深夜',
'河北保定居民樓爆炸案系刑事案 致1死34傷',
'7日16時(shí)播小德VS特松加爭(zhēng)冠',
'7日19:30播阿扎決戰(zhàn)莎娃',
'新華社三問(wèn)華山游客被刺案:為何說(shuō)法不一'
); //廣告內(nèi)容
strnum=7; //廣告數(shù)目-1
var
Form1: TForm1;
SysTime:TSystemTime;
wYear: Word;
wMonth: Word;
wDay: Word;
wHour: Word;
wMinute: Word;
lastini: TIniFile;
a0,a1,a2,a3,a4: Word;
temp:string;
tip:integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
sleep(Random(10));
tip:=Random(strnum);
sLabel1.Font.Color:=rgb(34,122,203); //字體顏色
sLabel1.Caption:=str[tip]+' 查看詳情>>';
GetLocalTime(SysTime); //本地時(shí)間
//GetSystemTime(SysTime); //喬治格林時(shí)間
temp:=GetWebPage('http://www.ip138.com/ips1388.asp');
Delete(temp,1,Pos(' 來(lái)自',temp)+6); //Pos()函數(shù)對(duì)漢字怎么進(jìn)行使用?
temp:=Copy(temp,1,Pos('<',temp)-1);
lastini:=Tinifile.Create('.\lastrun.ini');
if lastini.readinteger('上次運(yùn)行','lastrun',0)=0 then
begin
sLabel2.Caption:=IntToStr(SysTime.wYear)+'-'+IntToStr(SysTime.wMonth)+'-'+IntToStr(SysTime.wDay)+' '+IntToStr(SysTime.wHour)+':'+IntToStr(SysTime.wMinute);
sLabel3.Caption:=temp;
end
else
begin
a0:=lastini.readinteger('年','year',1); //讀取ini文件
a1:=lastini.readinteger('月','month',1);
a2:=lastini.readinteger('日','day',1);
a3:=lastini.readinteger('時(shí)','hour',1);
a4:=lastini.readinteger('分','minute',1);
sLabel2.Caption:=IntToStr(a0)+'-'+IntToStr(a1)+'-'+IntToStr(a2)+' '+IntToStr(a3)+':'+IntToStr(a4);
sLabel3.Caption:=lastini.readstring('地點(diǎn)','locale',''); //顯示上次信息
end;
end;
procedure TForm1.FormDestroy(Sender: TObject); //信息寫(xiě)入ini文件
var
lastini: Tinifile;
begin
lastini:=Tinifile.Create('.\lastrun.ini');
if sLabel2.Caption='' then lastini.writeinteger('上次運(yùn)行','lastrun',0)
else
begin
lastini.writeinteger('上次運(yùn)行','lastrun',1);
lastini.writeinteger('年','year',SysTime.wYear);
lastini.writeinteger('月','month',SysTime.wMonth);
lastini.writeinteger('日','day',SysTime.wDay);
lastini.writeinteger('時(shí)','hour',SysTime.wHour);
lastini.writeinteger('分','minute',SysTime.wMinute);
lastini.writestring('地點(diǎn)','locale',temp);
end;
end;
function TForm1.GetWebPage(const Url: string; IsUtf8: Boolean): string; //通過(guò)外網(wǎng)獲取ip,地理信息,Ps:這段子程序來(lái)自網(wǎng)友的。
var
idp:TidHTTP;
begin
Result:='';
idp:=TIdHTTP.Create(Application);
try
idp.HandleRedirects:=True;
idp.Request.UserAgent:='Mozilla/5.0';
Result:=idp.Get(Url);
if IsUtf8 then
Result:=Utf8ToAnsi(Result);
finally
FreeAndNil(idp);
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject); //查看按鈕事件
begin
ShellExecute(handle,nil,pchar('http://www.baidu.com/s?wd='+str[tip]+'&rsv_bp=0&rsv_spt=3&rsv_sug3=3&rsv_sug1=3&rsv_sug4=203&inputT=1021'),nil,nil,sw_shownormal);
//打開(kāi)搜索內(nèi)容
Form1.Close;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ANimateWindow(handle,400,aw_slide+aw_ver_positive+aw_hide); //窗口關(guān)閉效果:自頂向下,400us
end;
end.
顯示效果:

圖片我也想設(shè)計(jì)成隨機(jī)變換的,可惜,我不會(huì)。我只能說(shuō),點(diǎn)擊查看的效果還不錯(cuò),也就只能這樣了。(∩_∩)
由于時(shí)間、地理信息是保存在ini文件里的,所以可以像爆破XX軟件一樣,修改內(nèi)容,達(dá)到一定的效果,比如:

|
|