|
因为直接开始解压,不小心点到窗口或者拖动窗口的时候窗口会死掉,所以想试下用多线程来解决
看了大大的教程,实验了下确实可以,但是放我自己这里却出现了问题,点击按钮不开始解压
是否我哪里还有错误?请哪位朋友帮忙下,感恩!!
- import win.ui;
- import fsys;
- import sevenZip.decoder2;
- import thread.command;
- /*DSG{{*/
- winform = win.form(text="aardio form";right=529;bottom=229;image=$"\res\bg.jpg";bkBottom=0;bkLeft=0;bkRight=0;bkTop=0;border="thin";max=false;min=false;mode="popup";sysmenu=false;title=false)
- winform.add(
- btnClose={cls="plus";left=495;top=12;right=513;bottom=30;background="\res\close-default.png";clipBk=false;notify=1;z=6};
- btnSetup={cls="plus";text="开始安装";left=191;top=196;right=325;bottom=227;background="\res\setup-default.png";color=16777215;font=LOGFONT(h=-17);notify=1;z=1};
- button={cls="button";text="...";left=468;top=166;right=494;bottom=192;z=5};
- edit={cls="edit";left=91;top=166;right=460;bottom=192;edge=1;z=4};
- progress={cls="progress";left=88;top=176;right=442;bottom=201;border=1;color=65280;hide=1;max=100;min=0;z=2};
- static={cls="static";text="安装路径";left=34;top=173;right=86;bottom=191;font=LOGFONT(name='宋体';h=-13);transparent=1;z=3}
- )
- /*}}*/
- archive = sevenZip.decoder2();
- cmdLine = _CMDLINE;
- appName = ("/res/QQ.7z");
- //关闭按钮样式
- winform.btnClose.skin(
- background = {
- hover = "/res/close-hover.png";
- active = "/res/close-hover.png";
- default = "/res/close-default.png";
- }
- )
- //开始安装按钮样式
- winform.btnSetup.skin(
- background = {
- hover = "/res/setup-hover.png";
- active = "/res/setup-hover.png";
- default = "/res/setup-default.png";
- }
- )
- //拖动窗体
- winform.wndproc = function(hwnd,message,wParam,lParam){
- select (message) {
- case 0x201/*_WM_LBUTTONDOWN*/ {
- winform.hitCaption()
- }
- }
- }
- //关闭按钮
- winform.btnClose.oncommand = function(id,event){
- winform.close()
- }
-
- //智能判断路径
- function rPath(){
-
- var partitionC = ("C:") ;
- var partitionD = ("D:") ;
-
- if (fsys.isDir(partitionD)){
- partitionD = ("D:\Program Files (x86)");
- return partitionD;
- }
- else {
- partitionC = ("C:\Program Files (x86)");
- return partitionC;
- }
- }
- //刷新进度条
- var listener = thread.command();
- listener.pos=function(winform,posNum){
- winform.progress.pos = posNum;
- }
- //UI界面开始安装
- //uiInstall(path){
- var uiInstall = function(winform,path,app){
-
- import sevenZip.decoder2;
- import thread.command;
-
- //打开测试包
- if( !archive.open(app) ){
- //winform.msgbox("程序出错,请重新下载!");
- return;
- }
-
- //进度条显示
- archive.extractSetCompleted = function(lowSize,hiSize,percent){
-
- //winform.progress.pos = percent;
- thread.command.pos(winform,percent);
-
- }
-
- //开始解压
- if( archive.extract(path)){
-
- winform.close();
- }
-
- }
- //安装按钮开始安装
- winform.btnSetup.oncommand = function(id,event){
- //隐藏控件显示进度条
- winform.btnSetup.hide=true;
- winform.edit.hide=true;
- winform.static.hide=true;
- winform.button.hide=true;
- winform.progress.show(true);
- var installPath = winform.edit.text;
-
- //uiInstall(installPath);
- thread.invoke(uiInstall,winform,installPath,appName)
- }
- /* 程序安装开始 */
- var autoPath = rPath();
- var defaultPath = ("C:\Program Files (x86)") ;
- //窗口界面获取安装路径
- winform.edit.text=autoPath;
- if(cmdLine == "-a"){
- thread.invoke(uiInstall,autoPath,appName);
- }
- elseif(cmdLine == "-c"){
- thread.invoke(uiInstall,defaultPath,appName);
- }
- //高DPI自动缩放界面
- winform.enableDpiScaling();
- winform.show();
- return win.loopMessage();
复制代码 |
|