无忧启动论坛

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

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
发表于 2012-1-22 08:30:17 | 显示全部楼层 |阅读模式
本帖最后由 mdyblog 于 2021-5-13 15:53 编辑

PECMD2012.1.77.0-Win32_64多窗口多线程(已升级) + 裸机系统2.3.4 + 18M-COOL MiniPE(已升级)

***已通过启动PE测试***

功能特点:

多窗口
异形COOL窗口
半透明
多线程
纤程
同步锁
类,域名,对象
函数可嵌套
函数/窗口/LOAD可以带参数
命令扩展,函数调用如同内部命令, 不用CALL
支持局部变量(比环境变量快,可自动销毁)
支持{}包围的局部代码块
支持[]LAMBDA
普通代码可以用定时器,热键等
代码、资源可嵌入
代码可压缩、加密
未锁定文件名和目录,故还可以作为以前PECMD的功能补充
PECMD2012.1.86.01直接支持扇区映射
----
+ 编码转换CODE, 读注册表(多字节、扩展串),条件 代码块
+ 条件 代码块
+ 分区操作。磁盘读写
+ EXEC => 实时控件

下载链接:

PECMD:     PECMD2012.1.88.05.XX

MBROSTool:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=330493&page=1&extra=#pid2913010
超级右键:  PECMD下载目录
PECMDEdit: http://pan.baidu.com/s/1o69dRuU#  PECMDEDIT1.0.25--20150827.zip
Imdisk:   
Imdisk2.03纯中文版(直接编译出中文版)   英文版#1072

版本说明:

几个版本,包刮“兼容精简版”,内在执行码是一样的,只是包装不同:
一般版:      最大压缩,但还可以直接编辑资源。(方便直接添加/修改/查看内置脚本)。
巨小版:      最大压缩,且不能编辑资源了。
完整版:      原汁原味的。(可避免压缩引起杀软误报)。
兼容精简版:  简化到基本就是个4.0, 兼容4.0,开关参数统一了,说明书基本就是4.0的,多的不说(但你可以用)。更新慢点,不涉及BUG不一定更新了。(BUILD时间一样)
非兼容精简版:兼容“统一开关参数”。84、86版的旧开关,依然保留(只是HELP中不说了),旧的代码依然能运行。  

相关链接:  

编辑MBR,PBR;可在任何地方写入自己的代码。见#9787
RAMD Imdisk 可以直接挂载WIM了。           见#9161
PECMD 内置有CAB解压。                     见
#9183
解决“锁定--牛皮癣”。                    见8852#

注意事项:

1.LIST H高度指可下拉的高度!!!(WIN64较真;32位可较真可不较真,兼容旧的吧), LIST显示框的高度是不可设定的。
2.LOAD "C:\Program Files\a.ini"  A1  A2  引号一定不能省;以区分文件名和参数。因为本LOAD可带参数。
3.窗口内退出不能 EXIT FILE 等;只能KILL,且最后一条命令必须为KILL。
  //如TEAM  KILL \|  LOAD A.WCS| KILL \       //最后加一个KILL \
4.死机无法进入PE,如何调试?
  //LOGS  **2  *D:\PE1.LOG  或 LOGS   *D:\PE1.LOG

  //实时LOGS 到硬盘D:上。再在正常系统看PE1.LOG,
  //最后一条[]记录就是死机前正常执行的命令;那么脚本中下一命令死机。[前的那个数字就是行号。
  //**2方式,最后一条没有后接对应[]形式 的{}记录就是死机的命令。{前的那个数字就是行号。
  //     1784 4374983.867502713 3 {ENVI aaa=1}                      <==将要执行
  //     1784 4374983.959134471 3 [ENVI aaa=1] <0> :操作成功完成。  <==已经执行完毕

  //有些中间弹出错误,但即使运行,logs看不出来。方法1:弹出错误时,根据最后的LOGS,定位错误在哪儿。方法2:可以在主程序中加【MESS标志串】。根据弹出错误前的标志串,定位错误在
哪儿。
5.PECAB制作DEVI CAB包,一般不要勾选【处理INF】。
  【处理INF】只适用 NT5.x下配合INFCACHEBUILD.EXE 3步完成:DEVI ABC.CAB + INFCACHEBUILD.EXE + UPNP -pnp
  【处理INF】修改了INF内容,DEVI DrvLoad Rundll 等都不能安装了。
  INFCACHEBUILD.EXE之外都不要勾【处理INF】。
  NT5.x下没有勾时,直接【DEVI $ABC.CAB,,%TEMP%】完成。

   2012.1.88.05.55开始,自动按需转换。所以都可以不用钩了。

6:制作PE,一定要删除 HKLM\SOFTWARE\PELOGON
对应注册表文件:SYSTem32\config\SOFTWARE


软件更新:

#150 楼
     裸机系统安装程序已更新。不再需要那么大内存。
151#164楼
     安装程序再更新2:解决根目录下异常,选择后同时自动出下载界面。
152#170楼
     改为 "退出程序"  &  "返回"。V1.0版本标志。
153#172楼
     + 分区操作。磁盘读写
155#225楼
     * PART完善分区/MBR操作, + NTPC EXEC* 同步到控件. FNAM
156#236楼
     + NAME SCRN  SITE  SZIE   ?ADSL  ?PINT (ADSL PINT目前还是空函数)
157#240楼 FIX
158#270楼 FIX
159#280楼 U25   变量兼容模式
160#283楼 U26   FIX
161#283楼 U27   -img=文件名 操作磁盘镜象  -CHS=C:H:S
162#294楼 U28   控件左对齐。按钮图标
163#301楼 U29   FIX
164#315楼 U30   件自动回收不自动打开。
165#325楼 U31   CALC 可以自由使用 %
166#339楼 U32   FIX,无参数 SHOW
167#343楼 U33   FIX 空格变量名
168#351楼 U34   MSTR 支持直接得到空格引号确定的字串
169#353楼 U35   兼容模式嵌套变量
170#356楼 U36  
171#360楼 U37
172#366楼 U38   FIX
173#370楼 U39   UPDATE
174#376楼 U40   获取磁盘签名,信息格式化。
175#389楼 U41   PART  -phy. 显示扩展分区空分区条目。
176#395楼 U42   内置资源,分区结尾
177#416楼 U43   FIX:  FORX  abc\*.xx
178#425楼 U45   SHOU  物理分区号  
179#447楼 U46   ENVI PUTF 支持重复因子  
180#467楼 U47   LPOS  RPOS  支持 大小写敏感开关 -case
181#483楼 U48   PART不重启就生效。TEMP命令
182#495楼 U49   帮助目录
183#511楼 U50   + HELP 加 [书签] 颜色。    FIX:HIVE
184#527楼 U51   控件加对齐开关 -left -center -right. MSTR 一次获取多个变量
185#529楼 U52   +HIVE -super_r
186#539楼 U53   FIXED: HIVE -super_r
187#544楼 U54   GETF -g=列数      DEVI 直接安装INF文件
188#546楼 U55   +HIVE -quick
189#563楼 U55B  FIX
190#581楼 U56   CALC 支持2/8/10/16进制混合运算。-base=N 可以指定输出进制。数据(包刮浮点数)支持TGMKS后缀。K=1024 S=512
191#585楼 U56B  MSTR A=str<N->
192#615楼 U57   = PATH WAIT  HELP
193#636楼 U58   FIX。消息映射,捕捉消息。   
194#636楼 U59   MOUN *query 变量名[=rw][,Mount目标目录]   消息映射:EDIT,MEMO,ITEM,LABE  
197#636楼 U59D  +消息映射:窗口本身。
198#636楼 U60   消息映射:MSG/SENDMSG/POSTMSG。      //HELP 消息
199#636楼 U61   消息映射:MSG/SENDMSG/POSTMSG 参数。 //HELP 消息
200#636楼 U62   UPNP
201#701楼 U62B  TEXT 多行。
202#701楼 U62C  FIX
203#701楼 U62D  FIX
204#701楼 U63   字符串参数顺序改了。 EXEC*  NAME+=追加模式
205#745楼 U63B  FIX      
206#749楼 U63C  MODF   
209#749楼 U64   FIX:系统级用户级环境变量。+ KILL  [*exitcode=NUM] ...
210#779楼 U65   WALL  可随意更换
212#783楼 U65C  EXEC --wd:工作目录  表示设置执行程序的工作目录,有空字符前后用引号。*则为文件名取其目录。
215#821楼 U65F  环境变量   %CD%: 实时当前工作目录 ; FDIR [--full|--fullfile]; </font><font face="宋体">FORX *NL ; READ 读全部,换行转换218#821楼 U66C   PINT OK
219#821楼 U66D  服务态:MESS-svr2   ;KILL  *svr2  ; EXEC /InstallService --killwin2  
226#821楼 U66L  READ/WRIT换行判定和旧PECMD兼容,原有功能*fix打开。
227#821楼 U67   高速块传输模式。PUTF -dd [-bs=BS] [-count=COUNT] [-skip=SKIP] [-conv=notrunc] <文件名称>,[起始位置],输入文件名, 可以下载、上传磁盘镜像。
                裸机系统2.0抢鲜版  核心部分才几百K,PE及外置,XP,WIN7、LINUX可以随便定制。
234#821楼 U67F  PUTF -dd -quick  生成稀疏文件
242#821楼 U67P  PART /MBR=[*LIMIT*]<文件路径|#号码>
244#821楼 U67R  FORM <-free|-userfree|-userall>  获得(磁盘)剩余空
245#821楼 U67S  GETF -find  查找文件位置
247#821楼 U67T  KILL *force 强制杀死(如服务进程)
251#1090楼 U67_23  DISP 自动设置
252#1090楼 U67_24  FIND IFEX  MEMB
253#1090楼 U67_25  LOAD 支持代码片 GETF -find 支持子偏移
257#1090楼 U68     支持完整版的ImDisk
258#1090楼 U68_1   支持窗口置顶等 -top -forcenomin -disminb -dismaxb -nosysmenu -nocap -disaltmv
259#1090楼 U68_2   格式化磁盘,桌面刷新
260#1090楼 U68_3   按钮图标自动缩放
261#1225楼 U68_4   PART list part 输出盘符
264#1225楼 U68_8   PART list DRV  盘符   直接根据盘符列表
265#1225楼 U68_9   EXEC*  [--cmd:[:ms:]CMD]
266#1225楼 U68_10  READ  WRIT 支持标准文件
267#1225楼 U68_11  窗口 -maxb:使能最大化按钮   -discloseb:禁止关闭按钮
270#1225楼 U68_14  DEVI  INF在 %SystemRoot%\INF下时,总假定文件已经拷贝到位,不再执行拷贝工作。
271#1225楼 U68_15  DEVI
272#1225楼 U68_16  MESS 宽度更准确
275#1225楼 U68_19  支持PE7 WIM
278#1225楼 U69     程序变量(&开头)支持2进制数据,包刮0;窗口和控件名支持动态设置位置大小和层级  
282#1225楼 U69.4   对话框 -size 支持改变大小
285#1225楼 U69.7   LABE -trans 透明文本
291#1225楼 U69.13  RAMD ImDisk* -gui 图形模式
292#1225楼 U69.14  REGI  DISP SHUT
301#1225楼 U69.19  软盘不卡
302#1715楼 U69.20  MESS  超时默认值。HOME 。 PART  -phy#
302#1715楼 U69.21  升级 PCIP  
303#1715楼 U69.22  HELP 刷新(WIN2000)
306#1730楼 U69.24  HASH
307#1730楼 U69.25  FIND  IFEX 支持查询
308#1730楼 U69.26  内置初始化脚本 ENVI &&&HelpColor=
309#1760楼 U69.27  RAMD  Imdisk  支持CurRamDisk反馈
310#1760楼 U69.28  支持 INIT I 托盘图标菜单
311#1760楼 U69.29  MENU
312#1760楼 U69.30  ADSL
314#1772楼 U69.32  在线命令行 支持内存脚本。
325#1779楼 U69.41  LPOS**
366#2637楼 U69.41  修正。反向MSTR。 PAGE *force
367#2640楼 U69.57  支持拖放,拖到命令行为编辑, 拖到HELP区为显示并执行(可压缩).图标,PART-总线类型,FORM-设备。XP 风格。【关机:56】
368#2650楼 U69.58  SHOW 可制定起始盘符;USB盘 即插即用,并可通过 INIT  指定 起始USB盘符
369#2650楼 U69.59  BUTTON 支持XP风格
370#2650楼 U69.60  FDRV  扩展
371#2650楼 U69.61  扩展EXIT LOAD
372#2650楼 U69.62  扩展ENVI 全局PE变量;扩展LOAD ##ID;扩展CALL this调用;插件
373#2700楼 U69.63  PECMD专门模块
374#2777楼 U69.64  属性页表TABS. 按钮支持多行
375#2825楼 U69.65  子窗口 画中画
376#2825楼 U69.66  CALL  窗口实例,嵌套窗口操作。
389#2825楼 U69.66-13 关机不卡。

400#       PECMD2012.1.70.3.2-0804.多窗口线程孵化版_win32.sfx.zip
           PECMD2012.1.70.0.19_0803.多窗口线程稳定_win32.sfx.zip
           PECMDEDIT1.0.21.zip
401#4241楼 PECMD2012.1.70.3.2-1208.多窗口线程孵化版_win32.sfx.zip

402#4289楼 PECMD2012.1.70.3.2-1226.多窗口线程孵化版_win32.sfx.zip
           EXIT=   ERROR &ERROR  PECMD.EXE退出码 TEXT LOAD函数

PECMD2012.1.73.1-130228-1.多窗口线程孵化版_win32_64.sfx.zip  (含X64位)
PECMD2012.1.75.1-130314-0.多窗口线程孵化版_win32_64.sfx.zip
PECMD2012.1.77.0-130410-0.多窗口线程孵化版_win32_64.sfx.zip  
PECMD2012.1.86.02.00-130810.多窗口线程稳定版_win32_64新设计.sfx.zip
          "CMPx"加密算法, 界面完整。
PECMD2012.1.88.01.00-140625.多窗口线程稳定版_win32_64新设计.sfx.zip
          "CMPA"加密算法,开关标准化,加一模拟4.0的功能精简版。
           扇区映射  
PECMD2012.1.88.04.19  win7/8开启桌面组合玻璃效果 显示还是和设计效果一样(如居中)
PECMD2012.1.88.05: DLL 版 并配了个超微PECMD.EXE. DLL版适合做高效的右键扩展菜单。

[ 本帖最后由 mdyblog 于 2013-2-28 21:53 编辑 ]



点评

用心了  发表于 2024-5-18 23:38
辛苦了  发表于 2024-5-13 06:29

评分

参与人数 46无忧币 +233 收起 理由
yyz2191958 + 2 赞一个!
smss + 5 很给力!
泮安宁 + 5 很给力!
wuxin9712 + 5
2011wyy + 5
anythingsky + 5 赞一个!
2011patteel + 5 很给力!
sunshineboy + 5 很给力!
was172 + 5 赞一个!
l10x + 5 很给力!
sx3k + 1 赞一个!
俊采星驰 + 5 很给力!无忧因你更精彩!
cuicongyuan + 5 赞一个!
付松业 + 5
ge + 5 很给力!
whyme22 + 5 很给力!
huaqingyuan + 5 很给力!
祝君红红火火 + 5 很给力!
zmac2007 + 5
xzf680 + 5 赞一个! 没有最好,只有更好!
有阴也有阳 + 5
健佬 + 5 淡定
hlqf72 + 5 很给力!
passat + 5 很给力!
阿弥陀佛 + 5 很给力!
chxm1023 + 5 很给力!
zhetao + 5 很给力!
weiling103 + 5 很给力!
zhczf + 5 赞一个!
halo3213 + 5 很给力!

查看全部评分

发表于 2014-5-24 12:07:48 | 显示全部楼层
mdyblog 发表于 2014-5-24 08:08
麻烦 试试 最新版(重新下载)

PART -super -up -swap:4    2#1

还是无效啊

点评

阿阿退休了?好久不见。  详情 回复 发表于 2018-10-19 20:29
你那U盘是 磁盘 #2吗? 一般是#1 如果这样,应改为: PART -super -up -swap:4 1#1 part -ahup hupdate 1 part -gui -usb //读卡器+SD卡刷新磁盘 ??  详情 回复 发表于 2014-5-24 13:55
回复

使用道具 举报

发表于 2014-6-24 18:57:38 | 显示全部楼层
哦,可能不同系统代码不同吧.
+空格, 可以出来

就这样吧
回复

使用道具 举报

发表于 2014-7-12 13:58:50 | 显示全部楼层
PECMD2012.1.88.02.00-140625.多窗口线程稳定版_win32_64新设计.sfx.zip
这个版本在哪里有下载??
回复

使用道具 举报

发表于 2014-7-17 22:08:11 | 显示全部楼层
mdyblog 发表于 2014-7-17 22:01
去掉空格
[Maxtor 6Y120L0                          ]
变成 [Maxtor6Y120L0]

WinHex 获取的型号,中间有个空格。
Diskgen 获取的型号,中间没空格。
不知道哪个更准确?
1.png
2.png

点评

硬盘上存储的本来有个空格。而且一般用空格填满整个剩余空间。 有些人去掉空格是, 简单地“碰到空格”。 还是【最好只去掉前后的空格,中间应该保留】吧。  详情 回复 发表于 2014-7-17 22:12
回复

使用道具 举报

发表于 2014-7-17 20:07:45 | 显示全部楼层
mdyblog 发表于 2014-7-17 19:46
用局部PE变量,(或先设为空变量)

注意:不是所有磁盘都支持读硬件序列号。此时返回空。

我的是两个本地硬盘。原来还是有限制的

点评

》》两个本地硬盘 两个本地硬盘 都能拿回来 -devidx吗?  详情 回复 发表于 2014-7-17 20:10
回复

使用道具 举报

发表于 2014-7-13 12:51:28 | 显示全部楼层
mdyblog 发表于 2014-7-13 12:37
>>这样也失败,有没有办法不展开变量%systemroot%?

OK
回复

使用道具 举报

发表于 2014-7-13 00:53:03 | 显示全部楼层
M大,网盘里1.88版怎么没了呢?

点评

同上。 怎么让飞行的子弹停住: 网络没缴费。 传上了。  详情 回复 发表于 2014-7-13 10:45
回复

使用道具 举报

发表于 2014-7-17 22:03:35 | 显示全部楼层
mdyblog 发表于 2014-7-17 22:01
去掉空格
[Maxtor 6Y120L0                          ]
变成 [Maxtor6Y120L0]

最好只去掉前后的空格,中间应该保留吧

点评

试试这个 Disk[0] Mod[Maxtor 6Y120] SN[Y36MNBRE]  详情 回复 发表于 2014-7-17 22:21
回复

使用道具 举报

发表于 2014-7-17 13:41:02 | 显示全部楼层
tabs右边的边框是白色的,在win7下看不清楚。
截图-1.png

点评

那是微软自己画的, 不同系统上不一样。 那是MS立体感。 左边是阴面,叫暗,右边是阳面,白亮白亮的。  详情 回复 发表于 2014-7-17 15:00
回复

使用道具 举报

发表于 2014-7-17 11:48:59 | 显示全部楼层

点评

辛苦了  发表于 2024-7-31 21:37
新版: PART -devidx 支持拿到硬盘的物理序列号。 是磁盘本身的。 结果:  详情 回复 发表于 2014-7-17 14:27

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 赞一个!

查看全部评分

回复

使用道具 举报

发表于 前天 13:11 | 显示全部楼层
很给力!无忧因你更精彩!
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
请问大佬:“编辑内置资源.EXE”在哪下载啊
回复

使用道具 举报

发表于 2026-2-6 21:10:14 | 显示全部楼层
//有些中间弹出错误,但即使运行,logs看不出来。方法1:弹出错误时,根据最后的LOGS,定位错误在哪儿。方法2:可以在主程序中加【MESS标志串】。根据弹出错误前的标志串,定位错误在哪儿。
回复

使用道具 举报

发表于 2026-2-2 13:59:33 | 显示全部楼层
感谢您的分享!
回复

使用道具 举报

发表于 2026-1-30 18:52:43 | 显示全部楼层
CALC (0b1110 & 0b100) && 1
报错




QQ截图20260130184939.png





回复

使用道具 举报

发表于 2026-1-17 12:00:35 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 2026-1-14 11:33:35 | 显示全部楼层
好。。。。。。。。
回复

使用道具 举报

发表于 2026-1-13 22:31:56 | 显示全部楼层
牛啊
回复

使用道具 举报

发表于 2026-1-7 20:32:51 | 显示全部楼层
红毛樱木 发表于 2025-12-28 05:00
试试看。应该可以了。最近修行的快成仙了

看不懂,可是为什么会觉得很高级呢?
回复

使用道具 举报

发表于 2026-1-5 09:03:06 | 显示全部楼层
本帖最后由 Zap 于 2026-1-5 09:19 编辑
红毛樱木 发表于 2026-1-2 20:20
WALL 有进程锁,自己结束PECMD.EXE进程就行。 这个之前好像M为了解决PE下一个奇怪问题加的默认锁定
  1. TEAM set^ EnviMode=1|set^ ForceLocal=1
  2. exec -incmd =pecmd HOTK Ctrl+Q,D:\软件\MusicPlayer\MusicPlayer2.exe
  3. WALL D:\壁纸\085.jpg
复制代码

哦,HOTK有进程锁,这样另开线程,可以了,之后使用各种方式切换壁纸都不影响了
回复

使用道具 举报

发表于 2026-1-2 20:20:55 | 显示全部楼层
Zap 发表于 2026-1-2 14:26
之后使用系统自带切换壁纸或其它切换方式切换壁纸,会因HOTK挂后台 而重新卡到D:\壁纸\085.jpg上
...

WALL 有进程锁,自己结束PECMD.EXE进程就行。 这个之前好像M为了解决PE下一个奇怪问题加的默认锁定  

点评

Zap
哦,这样另开线程,可以了  详情 回复 发表于 2026-1-5 09:03
回复

使用道具 举报

发表于 2026-1-2 14:26:18 | 显示全部楼层
本帖最后由 Zap 于 2026-1-2 14:33 编辑
  1.     TEAM set^ EnviMode=1|set^ ForceLocal=1
  2.     HOTK Ctrl+Q, EXEC D:\软件\MusicPlayer\MusicPlayer2.exe
  3.     exec*- -err+ -incmd &a=pecmd WALL D:\壁纸\085.jpg
复制代码
  1.     TEAM set^ EnviMode=1|set^ ForceLocal=1
  2.     HOTK Ctrl+Q,exec*- -err+ -incmd &a=pecmd EXEC  D:\软件\MusicPlayer\MusicPlayer2.exe
  3.     WALL D:\壁纸\085.jpg
复制代码
  1.     TEAM set^ EnviMode=1|set^ ForceLocal=1
  2.     HOTK Ctrl+Q,EXEC D:\软件\MusicPlayer\MusicPlayer2.exe
  3.     exec*- -err+ -incmd &a=pecmd WALL D:\壁纸\085.jpg
复制代码

之后使用系统自带切换壁纸或其它切换方式切换壁纸,会因HOTK挂后台 而重新卡到D:\壁纸\085.jpg上
但继续使用PECMD的WALL切换壁纸则正常

点评

WALL 有进程锁,自己结束PECMD.EXE进程就行。 这个之前好像M为了解决PE下一个奇怪问题加的默认锁定  详情 回复 发表于 2026-1-2 20:20
回复

使用道具 举报

发表于 2026-1-2 14:22:09 | 显示全部楼层
谢谢!
回复

使用道具 举报

发表于 2026-1-2 07:46:29 | 显示全部楼层

我是来怀旧的
回复

使用道具 举报

发表于 2025-12-31 19:43:08 | 显示全部楼层


试了一下,有两种方法改变透明度,假设窗口句柄为67012

方法一:
call $--qd --bool User32.dll,SetLayeredWindowAttributes,#67012,#0,#180,#2  //渐变度(180):0~255,0透明,255不透明

方法二:

set @@pos=67012::::::$180  //渐变度(180):255~0,255透明,0不透明

这两种方法正好反过来了。





回复

使用道具 举报

发表于 2025-12-30 11:04:36 | 显示全部楼层
Zap 发表于 2025-12-30 10:59
BUG反馈之后使用系统自带切换壁纸时,会因HOTK挂后台 而卡到D:\壁纸\085.jpg上
  1. HOTK Ctrl+Q,EXEC D:\软件\MusicPlayer\MusicPlayer2.exe
复制代码


不等待模式执行

点评

Zap
实测不行  详情 回复 发表于 2026-1-2 14:26
回复

使用道具 举报

发表于 2025-12-30 10:59:26 | 显示全部楼层
BUG反馈
  1. TEAM set^ EnviMode=1|set^ ForceLocal=1
  2. HOTK Ctrl+Q,D:\软件\MusicPlayer\MusicPlayer2.exe
  3. WALL D:\壁纸\085.jpg
复制代码
之后使用系统自带切换壁纸时,会因HOTK挂后台 而卡到D:\壁纸\085.jpg上

点评

不等待模式执行  详情 回复 发表于 2025-12-30 11:04
回复

使用道具 举报

发表于 2025-12-28 05:00:39 | 显示全部楼层
本帖最后由 红毛樱木 于 2025-12-28 05:03 编辑
Zap 发表于 2025-11-6 00:40
是哦 以C:\Windows\explorer.exe为例 第一个是名称ICO_MYCOMPUTER 应该转换为字符
  1. //LOGS * %&CurDir%\log.log
  2. ENVI^ ENVIMODE=1
  3. SET$ NL=0d 0a
  4. // PECMD2012 内部本身就是宽字符Unicode。路径\\可以直接写真实路径\,自动转义。
  5. //ENVI &exePath=%&CurDir%\Photoshop.exe
  6. //ENVI &exePath=%&CurDir%\sti_ci.dll
  7. ENVI &exePath=%&SystemROOT%\explorer.exe
  8. //ENVI &exePath=%&CurDir%\explorerx64.exe
  9. //ENVI &exePath=%&CurDir%\explorerx86.exe
  10. //ENVI &exePath=%&CurDir%\explorer.exe
  11. CALL GetFirstIconGroupID "%&exePath%" &iconId
  12. MESS. 是否获取成功(0为失败,1为成功):%&error%%&NL%%&NL%第一个图标ID: %&iconId%@

  13. _SUB GetFirstIconGroupID
  14.     EXIT= 0
  15.     ENVI-ret %~2=0
  16.     ENVI &&exePath=%~1
  17.     ENVI &&GENERIC_READ=0x80000000
  18.     ENVI &&FILE_SHARE_READ=0x00000001
  19.     ENVI &&OPEN_EXISTING=3
  20.     ENVI &&INVALID_HANDLE_VALUE=-1
  21.     CALL$--qd --ret:&&hFile Kernel32.dll,CreateFileW,$%&exePath%,#%&GENERIC_READ%,#%&FILE_SHARE_READ%,#0,#%&OPEN_EXISTING%,#0,#0       // C中的NULL就是0,在PECMD中用数值 #0
  22.     IFEX #%&hFile%=%&INVALID_HANDLE_VALUE%,
  23.     {*
  24.         ENVI-ret %~2=0
  25.         EXIT _SUB
  26.     }
  27.     CALL$--qd --ret:&&fileSize Kernel32.dll,GetFileSize,#%&hFile%,#0
  28.     ENVI &&PAGE_READONLY=0x02
  29.     CALL$--qd --ret:&&hMap Kernel32.dll,CreateFileMappingW,#%&hFile%,#0,#%&PAGE_READONLY%,#0,#%&fileSize%,0     //CreateFileMapping 要用实际的 CreateFileMappingW
  30.     ENVI &&FILE_MAP_READ=0x0004
  31.     CALL$--qd --16 --ret:&&pBase Kernel32.dll,MapViewOfFile,#%&hMap%,#%&FILE_MAP_READ%,#0,#0,#0
  32.     //MESS. %&pBase%@&pBase
  33.     IFEX #%&pBase%=0,
  34.     {*
  35.         CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hMap%
  36.         CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hFile%
  37.         ENVI-ret %~2=0
  38.         EXIT _SUB
  39.     }
  40.     // PIMAGE_DOS_HEADER 的结构体 IMAGE_DOS_HEADER  64字节
  41.     //SET$# &dos=*64 0
  42.     SET-mkfixdummy &dos=%&pBase%@0;*64
  43.     SET?longs dos=&&dos.e_lfanew:60
  44.     //MESS. %&dos.e_lfanew%@&dos.e_lfanew
  45.     // PIMAGE_NT_HEADERS 的结构体(64位为 IMAGE_NT_HEADERS64 大小 264字节)(32位为 IMAGE_NT_HEADERS32 大小 248字节)
  46.     IFEX #0,    //判断错误,应该直接判断PE文件头是32位还是64位。
  47.     {*
  48.     IFEX #%&bX64%=3,
  49.     {*
  50.         //SET$# &nt=*264 0
  51.         SET-mkfixdummy &nt=(%&pBase%+%&dos.e_lfanew%)@0;*264
  52.     }!  
  53.     {*
  54.         //SET$# &nt=*248 0
  55.         SET-mkfixdummy &nt=(%&pBase%+%&dos.e_lfanew%)@0;*248
  56.     }
  57.     }
  58.     ENVI &&IMAGE_NT_OPTIONAL_HDR32_MAGIC=0x10b      //32位
  59.     ENVI &&IMAGE_NT_OPTIONAL_HDR64_MAGIC=0x20b      //64位
  60.     SET?short (%&pBase%+%&dos.e_lfanew%)=&&nt.OptionalHeader.Magic:24
  61.     //MESS. %&nt.OptionalHeader.Magic%@&nt.OptionalHeader.Magic
  62.     IFEX #%&nt.OptionalHeader.Magic%=%&IMAGE_NT_OPTIONAL_HDR32_MAGIC%,
  63.     {*
  64.         SET-mkfixdummy &nt=(%&pBase%+%&dos.e_lfanew%)@0;*248
  65.     }!  
  66.     {*
  67.         IFEX #%&nt.OptionalHeader.Magic%=%&IMAGE_NT_OPTIONAL_HDR64_MAGIC%,
  68.         {*
  69.             SET-mkfixdummy &nt=(%&pBase%+%&dos.e_lfanew%)@0;*264
  70.         }!  
  71.         {*
  72.             CALL$--qd --bool --ret:&&UnmapViewOfFileRet Kernel32.dll,UnmapViewOfFile,#%&pBase%;
  73.             CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hMap%
  74.             CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hFile%
  75.             ENVI-ret %~2=0
  76.             EXIT _SUB
  77.         }
  78.     }
  79.     //GETF &nt,0#*,&&nt_Hex
  80.     //MESS. %&nt_Hex%@&nt_Hex
  81.     SET?long nt=&&nt.Signature:0
  82.     //MESS. %&nt.Signature%@&nt.Signature
  83.     ENVI &&IMAGE_NT_SIGNATURE=0x00004550  // PE00
  84.     IFEX #%&nt.Signature%<>%&IMAGE_NT_SIGNATURE%,
  85.     {*
  86.         CALL$--qd --bool --ret:&&UnmapViewOfFileRet Kernel32.dll,UnmapViewOfFile,#%&pBase%;
  87.         CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hMap%
  88.         CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hFile%
  89.         ENVI-ret %~2=0
  90.         EXIT _SUB
  91.     }
  92.    
  93.     // 定位资源目录
  94.     // auto& resDir = nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE];
  95.     ENVI &&IMAGE_DIRECTORY_ENTRY_RESOURCE=2   // Resource Directory
  96.     //ENVI &&IMAGE_DIRECTORY_ENTRY_RESOURCE=0     // 测试
  97.     IFEX #0,
  98.     {*
  99.     IFEX #%&bX64%=3,
  100.     {*
  101.         SET-mkfixdummy &resDir=&nt@(4+20+112+(8*%&IMAGE_DIRECTORY_ENTRY_RESOURCE%));*8
  102.     }!  
  103.     {*
  104.         SET-mkfixdummy &resDir=&nt@(4+20+96+(8*%&IMAGE_DIRECTORY_ENTRY_RESOURCE%));*8
  105.     }
  106.     }
  107.     IFEX #%&nt.OptionalHeader.Magic%=%&IMAGE_NT_OPTIONAL_HDR32_MAGIC%,
  108.     {*
  109.         SET-mkfixdummy &resDir=&nt@(4+20+96+(8*%&IMAGE_DIRECTORY_ENTRY_RESOURCE%));*8
  110.     }!  
  111.     {*
  112.         IFEX #%&nt.OptionalHeader.Magic%=%&IMAGE_NT_OPTIONAL_HDR64_MAGIC%,
  113.         {*
  114.             SET-mkfixdummy &resDir=&nt@(4+20+112+(8*%&IMAGE_DIRECTORY_ENTRY_RESOURCE%));*8
  115.         }!  
  116.         {*
  117.             CALL$--qd --bool --ret:&&UnmapViewOfFileRet Kernel32.dll,UnmapViewOfFile,#%&pBase%;
  118.             CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hMap%
  119.             CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hFile%
  120.             ENVI-ret %~2=0
  121.             EXIT _SUB
  122.         }
  123.     }
  124.     //GETF &resDir,0#*,&&resDir_Hex
  125.     //MESS. %&resDir_Hex%@&resDir_Hex
  126.     SET?long resDir=&&resDir.VirtualAddress:0
  127.     //MESS. %&resDir.VirtualAddress%@&resDir.VirtualAddress
  128.    
  129.     // 定位资源节(.rsrc)
  130.     ENVI &&i=0
  131.     SET?shorts nt=&&nt.FileHeader.NumberOfSections:(4+2)    //WORD 2 字节,用short和wchar都可以
  132.     //MESS. %&nt.FileHeader.NumberOfSections%@&nt.FileHeader.NumberOfSections
  133.     SET?shorts nt=&&nt.FileHeader.SizeOfOptionalHeader:(4+2+2+4+4+4)
  134.     //MESS. %&nt.FileHeader.SizeOfOptionalHeader%@&nt.FileHeader.SizeOfOptionalHeader
  135.     //SET-mkfixdummy &section=&nt
  136.    
  137.     LOOP #%&i%<%&nt.FileHeader.NumberOfSections%,
  138.     {*
  139.         //#define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR)(ntheader) + FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + ((ntheader))->FileHeader.SizeOfOptionalHeader ))
  140.         SET-mkfixdummy &section=(%&pBase%+%&dos.e_lfanew%+(4+20+%&nt.FileHeader.SizeOfOptionalHeader%))@(40*%&i%);*40        // 相当于 section++
  141.         //GETF &section,0#40,&&section_Hex
  142.         //MESS. %&section_Hex%@&section_Hex
  143.         SET?long section=&&section.VirtualAddress:12
  144.         //MESS. &section.VirtualAddress:%&section.VirtualAddress%@%&i%
  145.         SET?long section=&&section.Misc.VirtualSize:8
  146.         //MESS. IFEX #[ ( %&resDir.VirtualAddress% >= %&section.VirtualAddress% ) & ( %&resDir.VirtualAddress% < ( %&section.VirtualAddress% + %&section.Misc.VirtualSize% ) ) ],@%&i%
  147.         //IFEX #[ ( %&resDir.VirtualAddress% >= %&section.VirtualAddress% ) & ( %&resDir.VirtualAddress% < ( %&section.VirtualAddress% + %&section.Misc.VirtualSize% ) ) ],     // IFEX 存在BUG,不能这样嵌套使用,先算出来吧。
  148.         IFEX #%&resDir.VirtualAddress% >= %&section.VirtualAddress%,
  149.         {*
  150.             CALC &&Fix=%&section.VirtualAddress% + %&section.Misc.VirtualSize%
  151.             IFEX #%&resDir.VirtualAddress% < %&Fix%,
  152.             {*
  153.                 EXIT LOOP
  154.             }
  155.         }
  156.         CALC #&i=%&i% + 1
  157.     }
  158.     // 计算资源目录在文件中的实际偏移
  159.     SET?long section=&&section.PointerToRawData:20
  160.     CALC #&&resOffset=%&resDir.VirtualAddress% - %&section.VirtualAddress% + %&section.PointerToRawData%
  161.     //MESS. %&resOffset%<&i:%&i%><CALC #&&resOffset=%&resDir.VirtualAddress% - %&section.VirtualAddress% + %&section.PointerToRawData%>@&resOffset
  162.     SET-mkfixdummy &rootDir=(%&pBase%+%&resOffset%)@0;*16
  163.     SET?short rootDir=&&rootDir.NumberOfIdEntries:(4+4+2+2+2)
  164.     //MESS. %&rootDir.NumberOfIdEntries%@&rootDir.NumberOfIdEntries
  165.    
  166.     // 遍历资源类型,找到 RT_GROUP_ICON(ID=14)
  167.     //SET-mkfixdummy &typeEntry=(%&pBase%+%&resOffset%)@16;*8
  168.     //GETF &typeEntry,0#8,&&typeEntry_Hex
  169.     //MESS. %&typeEntry_Hex%@&typeEntry_Hex
  170.    
  171.     ENVI &&i=0
  172.     LOOP #%&i%<%&rootDir.NumberOfIdEntries%,
  173.     {*
  174.         SET-mkfixdummy &typeEntry=(%&pBase%+%&resOffset%)@(16+(8*%&i%));*8
  175.         SET?short typeEntry=&&typeEntry.Id:0
  176.         //MESS. %&typeEntry.Id%@%&i%
  177.         IFEX #%&typeEntry.Id%=14,       // RT_GROUP_ICON = 14
  178.         {*
  179.             // 获取第一个图标ID(进入ID目录的第一个条目)
  180.             SET?long typeEntry=&&typeEntry.OffsetToDirectory:4
  181.             CALC #&typeEntry.OffsetToDirectory=%&typeEntry.OffsetToDirectory% & 0x7FFFFFFF
  182.             SET-mkfixdummy &iconDir=(%&pBase%+%&resOffset%)@%&typeEntry.OffsetToDirectory%;*16
  183.             SET-mkfixdummy &iconIdEntry=(%&pBase%+%&resOffset%)@(%&typeEntry.OffsetToDirectory%+16);*8
  184.             SET?long iconIdEntry=&&iconIdEntry.DUMMYUNIONNAME.DUMMYSTRUCTNAME:0
  185.             //CALC &&NameIsString=shr(%&iconIdEntry?long%,31)     // 可以
  186.             CALC #&&iconIdEntry.DUMMYUNIONNAME.DUMMYSTRUCTNAME.NameIsString=shr(%&iconIdEntry.DUMMYUNIONNAME.DUMMYSTRUCTNAME%,31) & 0x1
  187.             //MESS. %&iconIdEntry.DUMMYUNIONNAME.DUMMYSTRUCTNAME.NameIsString%@
  188.             IFEX #%&iconIdEntry.DUMMYUNIONNAME.DUMMYSTRUCTNAME.NameIsString%=1,     //判断是否为字符串
  189.             {*
  190.                 //CALC -base=16 &&NameOffset=shl(%&iconIdEntry?long%,1)     // 不行
  191.                 //CALC -base=16 &&NameOffset=%&iconIdEntry?long% & 0x7FFFFFFF     // 可以
  192.                 CALC -base=16 &&NameOffset=%&iconIdEntry.DUMMYUNIONNAME.DUMMYSTRUCTNAME% & 0x7FFFFFFF       // 可以
  193.                 SET?short (%&pBase%+%&resOffset%+%&NameOffset%)=&&pIMAGE_RESOURCE_DIR_STRING_U.Length
  194.                 //SET-make &pIMAGE_RESOURCE_DIR_STRING_U.NameString=(%&pBase%+%&resOffset%+%&NameOffset%)@2;$%&pIMAGE_RESOURCE_DIR_STRING_U.Length%  或者下面的更直接
  195.                 SET-make &pIMAGE_RESOURCE_DIR_STRING_U.NameString=(%&pBase%+%&resOffset%+%&NameOffset%+2);$%&pIMAGE_RESOURCE_DIR_STRING_U.Length%
  196.                 ENVI-ret~ %~2=&pIMAGE_RESOURCE_DIR_STRING_U.NameString
  197.                 EXIT= 1
  198.             }!  
  199.             {*
  200.                 SET?short iconIdEntry=&&iconIdEntry.Id:0
  201.                 CALC &&firstIconId=%&iconIdEntry.Id%        // 不知道源码这里为什么用DWORD计算WORD
  202.                 ENVI-ret~ %~2=&firstIconId
  203.                 EXIT= 1
  204.             }
  205.             //MESS. %&firstIconId%@
  206.             
  207.             CALL$--qd --bool --ret:&&UnmapViewOfFileRet Kernel32.dll,UnmapViewOfFile,#%&pBase%;
  208.             CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hMap%
  209.             CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hFile%
  210.             //ENVI-ret~ %~2=&firstIconId
  211.             EXIT _SUB
  212.         }
  213.         CALC #&i=%&i% + 1
  214.     }
  215.     CALL$--qd --bool --ret:&&UnmapViewOfFileRet Kernel32.dll,UnmapViewOfFile,#%&pBase%;
  216.     CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hMap%
  217.     CALL$--qd --bool --ret:&&CloseHandleRet Kernel32.dll,CloseHandle,#%&hFile%
  218.     ENVI-ret %~2=0
  219. _END
复制代码


试试看。应该可以了。最近修行的快成仙了

点评

看不懂,可是为什么会觉得很高级呢?  详情 回复 发表于 2026-1-7 20:32
回复

使用道具 举报

发表于 2025-12-26 19:34:08 | 显示全部楼层
527104427 发表于 2025-12-26 18:48
用API试试:SetLayeredWindowAttributes(hwnd, 0, 255, LWA_ALPHA);

谢谢,我试试

点评

试了一下,有两种方法改变透明度,假设窗口句柄为67012 方法一: call $--qd --bool User32.dll,SetLayeredWindowAttributes,#67012,#0,#180,#2 //渐变度(180):0~255,0透明,255不透明 方法二: set  详情 回复 发表于 2025-12-31 19:43
回复

使用道具 举报

发表于 2025-12-26 18:48:18 | 显示全部楼层
dhwc 发表于 2025-12-24 15:38
如果主窗体已经创建,怎样实时控制主窗体的透明度?     
CALL Main

用API试试:SetLayeredWindowAttributes(hwnd, 0, 255, LWA_ALPHA);
回复

使用道具 举报

发表于 2025-12-24 15:38:54 来自手机 | 显示全部楼层
本帖最后由 dhwc 于 2025-12-24 20:16 编辑

如果主窗体已经创建,怎样实时控制主窗体的透明度?     
CALL Main

_SUB Mainwindow,W300H360,窗口,,,15,,-top -disminb
ITEM OKButton,L200T285W84H30,调整透明度,CALL set
_END  

???

pecmd帮助里有ENVI @Mainwindow.trans=0x1,但是这个好像不能起作用,也不能指定具体的透明值

点评

用API试试:SetLayeredWindowAttributes(hwnd, 0, 255, LWA_ALPHA);  详情 回复 发表于 2025-12-26 18:48
回复

使用道具 举报

发表于 2025-12-23 13:56:00 | 显示全部楼层
pecmd.exe放到什么位置
回复

使用道具 举报

发表于 2025-12-19 21:14:35 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-12-11 17:13:18 | 显示全部楼层
红毛樱木 发表于 2025-12-11 17:07
swin高度太高覆盖了吧

解决了,是全选那个复选框太长覆盖了
回复

使用道具 举报

发表于 2025-12-11 17:07:02 来自手机 | 显示全部楼层
dhwc 发表于 2025-12-11 15:02
全选问题搞定了,还是用定时器控件。不能透明就算了。那个显示发虚的问题怎么解决?如图:



swin高度太高覆盖了吧
回复

使用道具 举报

发表于 2025-12-11 15:19:06 | 显示全部楼层
489432757 发表于 2025-12-11 15:12
全选太长了,搞短一点

靠,特妈的,在swin里随便复制的,还以为是显示问题,要刷新啥的呢,谢谢
回复

使用道具 举报

发表于 2025-12-11 15:12:13 | 显示全部楼层
dhwc 发表于 2025-12-11 15:02
全选问题搞定了,还是用定时器控件。不能透明就算了。那个显示发虚的问题怎么解决?如图:

全选太长了,搞短一点
回复

使用道具 举报

发表于 2025-12-11 15:02:43 | 显示全部楼层
本帖最后由 dhwc 于 2025-12-11 15:04 编辑
红毛樱木 发表于 2025-12-11 14:29
看下了“画布”的原理,是GDI+绘制的,不是单独的传统窗口空间类型,自动继承透明通道等信息。   这个貌 ...

全选问题搞定了,还是用定时器控件。不能透明就算了。那个显示发虚的问题怎么解决?如图:



看右下角按钮



点评

swin高度太高覆盖了吧  详情 回复 发表于 2025-12-11 17:07
全选太长了,搞短一点  详情 回复 发表于 2025-12-11 15:12
回复

使用道具 举报

发表于 2025-12-11 14:29:33 | 显示全部楼层

看下了“画布”的原理,是GDI+绘制的,不是单独的传统窗口空间类型,自动继承透明通道等信息。   这个貌似PECMD 弄不了,因为默认就继承了。     另外两个问题,代码里没重现 不知道。
回复

使用道具 举报

发表于 2025-12-10 21:39:21 | 显示全部楼层

  1. //_SUB MainWindow,W300H360,软件列表选择,,%windir%\system32\shell32.dll#130,15,,-top -disminb
  2. SET &SB_VERT=1
  3. SET &SIF_RANGE=0x0001

  4. ENVI &TotalCount=0
  5. ENVI &AllList=
  6. ENVI &Checkbox_All=0

  7. _SUB MainWindow,W300H360,软件列表选择,,%windir%\system32\shell32.dll#316,15,,-top -disminb
  8.     SWIN SWIN1:Page11:-SWINMAIN,L10T33W273H240,,0x140
  9.     ENVI @SWINMAIN:SWIN1.ID=?&Swin1_Wid   //画框ID
  10.     ENVI @SWINMAIN.ID=?&SWINMAIN_Wid    //与Page11窗口ID相同%&Page1_WID%
  11. ENVI @SWINMAIN.bkcolor=#FFFFFF
  12.     LABE -trans TitleLabel,L10T10W200H20,请选择要安装的软件:
  13.     ITEM OKButton,L200T285W84H30,开始安装,CALL OnOK
  14.     TIME Timer1,300,call SetSwin
  15.     CHEK Checkbox_All,L11T290W250H20,全选/全不选,call CheckboxAllChanged,1
  16. _END


  17. _SUB Page11,W600H240,,,,:0xFFFFFF
  18. //ENVI @this.bkcolor=0x000000
  19.     ENVI &YPos=10
  20.     ENVI &Index=0
  21.     ENVI &inList=0
  22.     SET$ NL=0D 0A

  23.     READ list.ini,*,&&AllContent

  24.     FORX *NL &AllContent,&&line,
  25.     {
  26.         mstr * &line1=1,1,&line
  27.         find $%&line1%=[,
  28.         {
  29.             find $%&line%=[softlist], ENVI &inList=1!ENVI &inList=0
  30.         }!
  31.         {
  32.             IFEX $%&inList%=1,
  33.             {
  34.                 FIND $%&line%=, exit -
  35.                
  36.                 // 解析软件名称、路径、默认是否选中
  37.                 MSTR * -delims:| SoftName,SoftPath,SoftStatus=<1><2><3>&line
  38.                  
  39.                 CHEK Checkbox_%&Index%,L40T%&YPos%W180H20,%SoftName%
  40.                 IFEX $%SoftStatus%=0,ENVI @Checkbox_%&Index%.Check=1
  41.                 IFEX $%SoftStatus%=2,team ENVI @Checkbox_%&Index%.Check=1|ENVI @Checkbox_%&Index%.Enable=0
  42.                
  43.                 ENVI &Checkbox_Name=Checkbox_%&Index%
  44.                 ENVI &Checkbox_Name_Path=%SoftPath%
  45.                 ENVI Checkbox_Name_Status=%SoftStatus%

  46.                 CALC &YPos=%&YPos% + 25
  47.                 CALC &Index=%&Index% + 1
  48.                
  49.                 ENVI &AllList=%Checkbox_Name_Path%%NL%%&AllList%
  50.             }

  51.         }
  52.     }
  53.     ENVI &TotalCount=%&Index%

  54.     //Find $%Checkbox_All.Check%=1,mess 全选!mess 全不选
  55.    
  56. _END

  57. _SUB SetSwin *
  58.     ENVI @Timer1.*del=
  59.     CALC #Hv=%&TotalCount%*26
  60.     ENVI @@POS=%&SWINMAIN_Wid%::::%Hv%
  61.     @TEAM SET-int inf=%&SIF_RANGE%:4| SET-int inf=%Hv%:12
  62.     CALL $--qd user32.dll,SetScrollInfo,#%SWIN1_Wid%,#%SB_VERT%,*&inf
  63. _END


  64. _SUB CheckboxAllChanged
  65.     ENVI &i=0
  66.     Find $ENVI @%&Swin1_Wid%:Checkbox_%&i%.Check=1,
  67.     {
  68.      MESS %Checkbox_All.Check%:::%&TotalCount%
  69.         LOOP #%&i% < %&TotalCount%,
  70.         {
  71.              ENVI @Checkbox_%&i%.Check=1
  72.              CALC &i=%&i% + 1
  73.         }
  74.     EXIT _Sub
  75.     }
  76.     Find $ENVI @%&Swin1_Wid%:Checkbox_%&i%.Check=0,
  77.     {
  78.         LOOP #%&i% < %&TotalCount%,
  79.         {
  80.              ENVI @Checkbox_%&i%.Check=0
  81.              CALC &i=%&i% + 1
  82.         }
  83.      }
  84. _END

  85. _SUB OnOK
  86. ENVI &InstPath=
  87. ENVI &Index=0

  88.     LOOP #%&Index% <= %&TotalCount%,
  89.     {
  90.         READ  -*,%&Index%,&InstPath,&AllList
  91.         Find $%Checkbox_%&Index%.Check%=1,TEAM mess Checkbox_%&Index%选中\n%&InstPath%
  92.         CALC &Index=%&Index% + 1
  93.     }

  94. _END


  95. CALL @MainWindow
复制代码

点评

看下了“画布”的原理,是GDI+绘制的,不是单独的传统窗口空间类型,自动继承透明通道等信息。 这个貌似PECMD 弄不了,因为默认就继承了。 另外两个问题,代码里没重现 不知道。  详情 回复 发表于 2025-12-11 14:29
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-2-25 00:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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