SEC在线安装程序源代码

此源码也是SEC编程软件,在线安装程序正式使用的代码。代码里既有中文也有英文,因为并不是为了教学展示所用,部分代码都是直接复制来的。出于实用性目的,也不必要再全部转换成中文。

一、新建一个初级程序,在窗体上”画“一个进度条,命名为”进度“,然后再画一个按钮,标题写”开始安装“。如下图所示

SEC在线安装程序源代码

二、代码部分如下,可全部复制过去替换。

导入 打开网络 别名 InternetOpenA 支持库 “wininet.dll”,5;

导入 打开网址 别名 InternetOpenUrlA 支持库 “wininet.dll”,6;

导入 网址信息 别名 HttpQueryInfoA 支持库 “wininet.dll”,5;

导入 读取网址 别名 InternetReadFile 支持库 “wininet.dll”,4;

导入 关闭网址 别名 InternetCloseHandle 支持库 “wininet.dll”,1;

导入 释放内存 别名 CoTaskMemFree 支持库 “ole32.dll”,1;

类型 浏览窗{整数 窗口,目录,路径,标题,选项,回调,参数,图像;}

常量 不写缓存=$84000000,网址状态=$20000013,网件长度=$20000005;

整数 网络,网件,信息,信息长度=4,缓冲区,文件,校验,CRC,命令,dat,file,fn=1,fl=20,iv,ln=2,ls,tp;

文本 网址[80]=”
https://zx-1252114143.cos.ap-guangzhou.myqcloud.com/sec.txt”;浏览窗 选窗;

小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据);

判断(消息)

为 窗口关闭 {停止(0);}

为 单击左键 {开始安装;}

否则{DefWindowProc(窗口,消息,参数,数据);}

结束;

小程序 窗体启动();

网络= 打开网络(0, 0, 0, 0, 0);

CRC=malloc(10240);校验=?+1024;命令=?+4000;fn=?+70;

缓冲区=?+26;file=strchr(网址+10,47)+1;校验表(CRC);

列举 选窗{

.窗口= 窗体;

.路径 = 命令;

.标题 = “请选择安装路径”;

.选项= 0065;}

读取消息();

结束;

小程序 CRC32(整数 pat);

文件=fopen(pat,”rb”);

如果(文件>0){fseek(文件, 0, 2);

ln=ftell(文件);fseek(文件, 0, 0);

dat= malloc(ln+1);fread(dat,ln,1,文件);

fclose(文件);iv=校验数据(dat,ln);free(dat);文件=0;}

返回(iv);

结束;

小程序 开始安装;

ln= SHBrowseForFolder(选窗);

SHGetPathFromIDList(ln,命令);

如果(strlen(命令)<5){返回;}

SetWindowText(窗体, 命令);

释放内存(ln);

下载文件(0);检查文件();

结束;

小程序 检查文件();

如果(fl=0){返回;}

tp=strtok(校验,”rn”);换行@

sscanf(tp,”%X %s”,@ls,fn);

如果(ls=0){DeleteFile(fn);} 否则{

格式化(file,”%s.zip”,fn);DeleteFile(file);

如果(ls!=CRC32(fn)){DeleteFile(fn);iv=strrchr(fn,92);

如果(iv=0){GetCurrentDirectory(26,fn);}否则{iv(1)=0;}

CreateDirectory(fn,0);格式化(命令,”-r -F:* %s %s”,file,fn);

Sleep(100);下载文件(1);}}tp=strtok(0,”rn”);

如果(tp>0){tp(-2)%=$A0D;跳到 换行;}信息框(0,”安装完成”,”提示”,$40);

ShellExecute(0, “Open”, “sec.exe”, 0, 0, SW_SHOW);

结束;

小程序 校验表(整数 数据);

指令[
8B7D0830C90FB6C1B508D1E87305352083B8EDFECD75F3ABFEC175E9];

结束;

小程序 校验数据(整数 数据,整数 长度);

指令[8B75088B4D0C8B3D];置入[地址 CRC];

指令[
31C04831DB8A1E30C3C1E80833049F464975F283F0FF];

结束;

小程序 下载文件(整数 fm);

网件=打开网址(网络, 网址, 0, 0, 不写缓存, 0);

网址信息(网件, 网址状态, @信息, @信息长度, 0);

如果(信息=200){网址信息(网件, 网件长度, @信息, @信息长度, 0);ln=信息;

如果(信息<50 或者 信息>5120){信息=5120;}fl=0;

如果(fm=1){文件=fopen(file,”wb+”);}重读:

读取网址(网件, 缓冲区, 信息, @ls);如果(ls>0){

fl+=ls;判断(fm)为 0{Copy(校验,缓冲区,ls);}

为 1{fwrite(缓冲区,ls,1,文件);iv=fl*100/ln;

SendMessage(进度,$402,iv,0);}跳到 重读;}

判断(fm)

为 0{校验(fl)=0;}

为 1{fclose(文件);文件=0;

ShellExecute(0, “Open”, “expand.exe”, 命令, 0, 0);}

}否则{信息框(0,file,”无法下载”,$10);}关闭网址(网件);

结束;

来源:智五星

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月16日
下一篇 2022年4月16日

相关推荐