godking.resHtml + godking.filePackage 库,单个资源文件封装一个可以内存浏览的网页

光庆 22小时前 145

只需在资源文件中添加一个打包好的文件(可明文、可加密),浏览器访问时,再由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");


上传的附件:
最新回复 (1)
  • breezee 11小时前
    0 2
    光庆大大牛牛牛!
返回