无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 811|回复: 5
打印 上一主题 下一主题

[求助] pecmd代码求助

[复制链接]
跳转到指定楼层
1#
发表于 2024-7-17 20:33:36 来自手机 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
想做一个软件选择安装管理器,功能:
1、office2024、office2016、office2010只能三选一,不能同时安装两个版本;
2、别的软件都可以任意选择;
3、默认选择情况下,10秒倒计时结束后自动安装;
4、10秒内任意选择或不选择某个软件,倒计时结束。

代码如下:

_SUB Windows1,W360H300,%WinName%,,%WindowIcon%,0
    IFEX .\InstList.INI,FILE .\InstList.INI

    ENVI $AutoInst=1

    LABE Label1,L15T12W300H60,点选你要安装的软件:
    GROU GrouDir,L10T37W335H69,办公软件,Office三个版本任选其一,不能多选
    CHEK CHEK_A,L20T57W82H17,Office 2024,TEAM ENVI @CHEK_B.Check=0|ENVI @CHEK_C.Check=0|CALL CheckAuto,1,1
    CHEK CHEK_B,L139T57W82H17,Office 2016,TEAM ENVI @CHEK_A.Check=0|ENVI @CHEK_C.Check=0|CALL CheckAuto,0,1
    CHEK CHEK_C,L258T57W82H17,Office 2010,TEAM ENVI @CHEK_B.Check=0|ENVI @CHEK_A.Check=0|CALL CheckAuto,0,1
    CHEK CHEK_D,L20T77W160H17,万兴PDFelement 10.4.6,CALL CheckAuto,1,1

    GROU GrouDir,L10T111W335H52,网络软件
    CHEK CHEK_E,L20T131W95H17,360极速浏览器,CALL CheckAuto,1,1
    CHEK CHEK_F,L139T131W95H17,微信,CALL CheckAuto,1,1
    CHEK CHEK_G,L258T131W85H17,QQ(绿色),CALL CheckAuto,1,1

    GROU GrouDir,L10T168W335H52,杀毒软件
    CHEK CHEK_H,L20T188W82H17,火绒安全,CALL CheckAuto,1,1

    ITEM Button1,L135T230W80H25,我不需要,KILL \%Windows1%
    ITEM Button2,L216T230W130H25,倒计时后自动安装(30),@TEAM CALL Inst

    CHEK CHEK_I,L20T232W82H17,备份软件包,CALL CheckAuto,0,1

    LABE Label2,L323T236W12H17,%&B%,,0x0000ff,

    TIME -t:10 &Timer1,1000, TEAM CALC n=%n%+1|CALC B=10-%n%|ENVI @Label2=%B%|CALL show


_END


ENVI WinName=常用软件选择与安装
ENVI WindowIcon=%windir%\system32\shell32.dll#130
CALL @Windows1


_SUB show
mess %B% *400
    IFEX $%B%=1 & IFEX $%AutoInst%=1,CALL Inst
_END


_SUB Inst
    IFEX $%CHEK_A.Check%=1,WRIT .\InstList.INI,+0,Office 2024
    IFEX $%CHEK_B.Check%=1,WRIT .\InstList.INI,+0,Office 2016
    IFEX $%CHEK_C.Check%=1,WRIT .\InstList.INI,+0,Office 2010
    IFEX $%CHEK_D.Check%=1,WRIT .\InstList.INI,+0,PDFelement
    IFEX $%CHEK_E.Check%=1,WRIT .\InstList.INI,+0,360Chrome
    IFEX $%CHEK_F.Check%=1,WRIT .\InstList.INI,+0,Wechat
    IFEX $%CHEK_G.Check%=1,WRIT .\InstList.INI,+0,QQ
    IFEX $%CHEK_H.Check%=1,WRIT .\InstList.INI,+0,HR
    IFEX $%CHEK_I.Check%=1,FILE .\*.7Z=>%TEMP%
    KILL \%Windows1%
_END


_SUB CheckAuto
    ENVI @Button2.color=0x008000
    ENVI AutoInst=0
    ENVI @Button2=选好了,开始安装
    ENVI @Timer1=0
    ENVI B=999
    ENVI @Label2.Visible=0
_END

现在两个问题:
1、10秒内不做选择,代码能够正确导出要安装的软件列表,并自动关闭窗口。但10秒内任意选择一个软件后,虽然能导出软件列表,但还是会在10s后关闭窗口?我暂停计时器也没用,哪怕指定%B%的值也没用?
2、任意选择一个软件后,按钮变绿色,但很奇怪,再选择一次,按钮又会变黑色?

哪错了,肯请指教,谢谢


pe求助区太冷清,换个板块,版主见谅
4#
发表于 2024-10-18 17:33:23 | 只看该作者
红毛樱木 发表于 2024-7-17 21:44
控件的名称前的&和变量前带的&不是一回事了。控件前的&是一个整体。
比如你这里的:
TIME -t:10 &Timer1, ...

感谢分享
回复

使用道具 举报

3#
 楼主| 发表于 2024-7-17 21:54:06 来自手机 | 只看该作者
红毛樱木 发表于 2024-7-17 21:44
控件的名称前的&和变量前带的&不是一回事了。控件前的&是一个整体。
比如你这里的:
TIME -t:10 &Timer1, ...

感谢回复

还真的是没注意,明天试下
回复

使用道具 举报

2#
发表于 2024-7-17 21:44:09 | 只看该作者
控件的名称前的&和变量前带的&不是一回事了。控件前的&是一个整体。
比如你这里的:
TIME -t:10 &Timer1,1000, TEAM CALC n=%n%+1|CALC B=10-%n%|ENVI @Label2=%B%|CALL show
而后面的
ENVI @Timer1=0
中却没有&,所以ENVI @Timer1=0实际是针对叫Timer1的控件而不是叫&Timer1的控件。
ENVI @Timer1=0改成ENVI @&Timer1=0即可。

点评

感谢分享  详情 回复 发表于 2024-10-18 17:33
学习了  发表于 2024-7-18 18:32
感谢回复 还真的是没注意,明天试下  详情 回复 发表于 2024-7-17 21:54
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 22:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表