只需在资源文件中添加一个打包好的文件(可明文、可加密),浏览器访问时,再由aardio解包返回正确的文件内容即可。
这样在exe文件中,res资源非常干净,不用带一堆网页文件了。
godking.resHtml 、 godking.filePackage 库请自行下载。
工程文件已打包,请下载附件测试。
下面是浏览器组件访问资源文件显示网页的代码:
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=559;bottom=583)
winform.add(
custom={cls="custom";text="自定义控件";left=8;top=40;right=552;bottom=576;bgcolor=12639424;border=1;z=1};
static={cls="static";text="加密网页";left=8;top=8;right=104;bottom=32;font=LOGFONT(h=-16);transparent=1;z=2}
)
/*}}*/
//导入相关库
import sevenZip.lzma;
import godking.resHtml;
import web.view;
//浏览加密网页
var resHtml = godking.resHtml( /*资源目录*/,"Aardio资源网.html"/*首页文件名*/,`
function(html){
import godking.filePackage;
var file = ..io.splitpath(html).file;
var data = godking.filePackage.getDataFromBuffer(..string.load("\res\htmldata"),file);
if #data {
import sevenZip.lzma;
return sevenZip.lzma.unCompress(data);
}
}
`/*内容获取函数代码*/,/*资源解密函数代码*/);
var wb = web.view(winform.custom);
wb.go(resHtml.url);
//显示窗口
winform.show();
win.loopMessage();
下面是我将 加密的网页文件,全部打包生成一个文件的代码:
import godking.filePackage;
var a = godking.filePackage();
import fsys
fsys.enum( "D:\aardio\project\aardio工程\res\aardio资源网加密\Aardio资源网_files\", "*.*",
function(dir,filename,fullpath,findData){
if(filename){
a.addFile(filename,..string.load(fullpath));
}
}
,/*如果此参数为false则忽略子目录*/
);
a.addFile("Aardio资源网.html",..string.load("D:\aardio\project\aardio工程\res\aardio资源网加密\Aardio资源网.html"));
//你也可以给addFile的第二个参数,直接提供一个加密的文件数据,然后在resHtml中就可以直接解密使用了。
a.saveToFile("C:\Users\Administrator\Desktop\htmldata");