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

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

   火... [复制链接]
发表于 2018-12-14 16:25:56 | 显示全部楼层
Bluebells 发表于 2018-12-14 15:19
请问如何查询某复选框控件是否处于勾选状态?

一般RADI和CHCK,直接为为这种形式的变量%控件名.CHECK%
比如:
RADI RadioButton1,L32T314W100H20,卸载WimShExt.DLL,ENVI @Group1=%RadioButton1%,1,1
为%RadioButton1.Check%
RADI &RadioButton1,L32T314W100H20,卸载WimShExt.DLL,ENVI @Group1=%RadioButton1%,1,1
为%&RadioButton1.Check%

大致是这个意思

点评

非常感谢, 原来是如此处理的  详情 回复 发表于 2018-12-14 21:17
回复

使用道具 举报

发表于 2018-12-14 21:17:50 | 显示全部楼层
红毛樱木 发表于 2018-12-14 16:25
一般RADI和CHCK,直接为为这种形式的变量%控件名.CHECK%
比如:
RADI RadioButton1,L32T314W100H20,卸 ...

非常感谢, 原来是如此处理的
回复

使用道具 举报

发表于 2018-12-24 14:27:52 | 显示全部楼层
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...

20180808版本的PECMD, Mess. %quicklaunch%显示C:\Users\Administrator\AppData\Roaming,而老版本20160612版本显示为C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch.

点评

可能是BUG,也可能是PECMD内部做了调整。 %quicklaunch%默认情况应该是系统变量 %&quicklaunch%默认情况是PECMD变量 但是你的显示的是PECMD变量,可能你"ENVI^ ForceLocal=1"了,自己调整下应该就可以了。  详情 回复 发表于 2018-12-24 16:17
回复

使用道具 举报

发表于 2018-12-24 16:17:43 | 显示全部楼层
datbik189 发表于 2018-12-24 14:27
20180808版本的PECMD, Mess. %quicklaunch%显示C:%users\Administrator\AppData\Roaming,而老版本2016061 ...

可能是BUG,也可能是PECMD内部做了调整。
%quicklaunch%默认情况应该是系统变量
%&quicklaunch%默认情况是PECMD变量
但是你的显示的是PECMD变量,可能你"ENVI^ ForceLocal=1"了,自己调整下应该就可以了。

点评

谢谢,我试一下  详情 回复 发表于 2018-12-27 16:00
回复

使用道具 举报

发表于 2018-12-27 16:00:04 | 显示全部楼层
红毛樱木 发表于 2018-12-24 16:17
可能是BUG,也可能是PECMD内部做了调整。
%quicklaunch%默认情况应该是系统变量
%&quicklaunch%默认情 ...

谢谢,我试一下
回复

使用道具 举报

发表于 2018-12-31 20:29:48 来自手机 | 显示全部楼层
新年快乐,pecmd2019加油
回复

使用道具 举报

发表于 2019-1-6 11:18:42 | 显示全部楼层
  1. IFEX %CurFile%.LOG, LOGS --2 *   %CurFile%.LOG
  2. ENVI^  ForceLocal=1
  3. SET  ::WM_SETTEXT=0x000C
  4. SET  ::WM_GETTEXT=0x000D
  5. SET  ::WM_GETTEXTLENGTH=0x000E

  6. WIN1

  7. _SUB WIN1,W287H286,进程间传递字符串演示,
  8.     //ENVI @this.Visible=0
  9.     ENVI @this.trans=1
  10.     LABE -trans LABE1,L15T53W260H30,LABE1,,
  11.     LABE -trans LABE2,L15T93W260H30,LABE2,,  //接受方:接受消息的窗口,可以隐藏
  12.     EDIT -vcenter EDIT1,L183T180W60H30,EDIT1,,  //发送方:接受消息的窗口句柄HWND

  13.     ENVI @LABE1.ID=?WIDL1
  14.     ENVI @LABE1=%WIDL1%
  15.     ENVI @EDIT1=%WIDL1%
  16.     ENVI @LABE1.MSG=_%&WM_SETTEXT%: OnSETTEXTL1 MESS [%LABE1%]
  17.     ENVI @LABE1.MSG=#1: OnSETTEXTL2 MESS [%LABE1%]
  18.     ITEM ITEM1,L106T182W60H30,发送,OnSEND,
  19. _END
  20. _SUB OnSETTEXTL1
  21.     SET &V2=
  22.     GetWindowText  %WIDL1%  &V2
  23.     ENVI @LABE2=%&V2%
  24.     //MESS [%&V2%]
  25. _END

  26. //函数:  GetWindowText  窗口ID   文本变量名
  27. _SUB GetWindowText
  28.     //ENVI @@POS=%1:::::::1:1 //激活
  29.     ENVI @@SENDMSG=:&&___LEN__;%1;%WM_GETTEXTLENGTH%;0;0 //长度
  30.     CALC #&___LEN__=%&___LEN__% + 100
  31.     ENVI$ %2=*%&___LEN__%  0   //申请内存/缓冲区
  32.     ENVI @@SENDMSG=%1;%WM_GETTEXT%;%&___LEN__%;@%2
  33. _END

  34. _SUB OnSEND
  35.     ENVI @@SENDMSG=%EDIT1%;%WM_SETTEXT%;0;$hello World %RANDOM%
  36. _END
  37. //测试
  38. //PECMD ENVI @@SENDMSG=0x700D2;0x000C;0;$hello World %RANDOM%


复制代码


发送 之后,LABE1的trans属性消失
回复

使用道具 举报

发表于 2019-1-18 15:40:49 | 显示全部楼层
有源码否?
回复

使用道具 举报

发表于 2019-1-26 20:13:39 来自手机 | 显示全部楼层
回复

使用道具 举报

发表于 2019-1-26 20:13:46 来自手机 | 显示全部楼层
回复

使用道具 举报

发表于 2019-1-26 20:14:02 来自手机 | 显示全部楼层
回复

使用道具 举报

发表于 2019-2-2 10:32:35 来自手机 | 显示全部楼层
m大有没有考虑编译个arm的版本,现在win10出了arm的版本,可能会用到
回复

使用道具 举报

发表于 2019-2-5 00:30:08 | 显示全部楼层
新年快乐,阖家欢乐
回复

使用道具 举报

发表于 2019-2-14 12:46:33 来自手机 | 显示全部楼层
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...

老大,请教一下,sed命令能不能将任意字符①替换成任意字符②:如sed &Ⅴ=0:0,①,②,%&V%

点评

试过不行吗?  详情 回复 发表于 2019-2-14 23:27
回复

使用道具 举报

发表于 2019-2-14 23:27:13 来自手机 | 显示全部楼层
datbik189 发表于 2019-2-14 12:46
老大,请教一下,sed命令能不能将任意字符①替换成任意字符②:如sed &Ⅴ=0:0,①,②,%&V%

试过不行吗?

点评

SED命令涉及到正则,有些符号有特殊意义. 目前通过这样的方式解决这个问题,只是比较繁琐. ENVI^ ENVIMODE=1 SET &V1=* SET &V2=★ SET. &V3=*\n*\n* CALL 任意字符替换 "" 1 1 &V1 &V2 &V3 MESS. %&V3% _  详情 回复 发表于 2019-2-15 11:18
回复

使用道具 举报

发表于 2019-2-15 08:22:09 | 显示全部楼层
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...

这个好像是BUG:
TEAM SET. &V=*\n*\n*|LPOS* *&V=*,,%&V%|MESS. %&V%
//显示为1 3 4 6 7, 应该为1 4 7吧
回复

使用道具 举报

发表于 2019-2-15 11:18:46 | 显示全部楼层
本帖最后由 datbik189 于 2019-2-15 15:57 编辑


SED命令涉及到正则,有些符号有特殊意义.
目前通过这样的方式解决这个问题,只是比较繁琐.

ENVI^ ENVIMODE=1
SET &V1=*
SET &V2=★
SET. &V3=*\n*\n*
CALL 任意字符替换 "" 1 1 &V1 &V2 &V3
MESS. %&V3%

_SUB 任意字符替换
//CALL 任意字符替换 "-CASE"(大小写) 0(替换次数) 0(跳过次数) &V1(查找串) &V2(替换串) &V3(原串)
FIND $[%6.=. | ( %~1.<>. & %~1<>-CASE )],EXIT _SUB
TEAM ^SET &P1=%%%~4%%|^SET &P2=%%%~5%%|^SET &P3=%%%~6%%|SET &P4=|SET &P5=|SET &P6=%&P3%|STRL &P7=%&P1%|SET &P8=|SET &P9=0|SET &P10=0|SET &P11=|
LOOP #1=1,
{* ^LPOS* * %~1 *&P8=%%&P1%%,,&P6
   FORX * %&P8% 0,&P11,
   {* IFEX $%&P11%=0,!!TEAM SET &P8=0|EXIT FORX
      MSTR &P5=%&P11%,%&P7%,%&P6%
      FIND $%~1=,
      {* IFEX '%&P5%'='%&P1%',!!TEAM SET &P8=%&P11%|EXIT FORX
       }!
      {* IFEX*C '%&P5%'='%&P1%',!!TEAM SET &P8=%&P11%|EXIT FORX
       }
   }
   IFEX $[%&P8%=0 | ( %~2>0 & %&P9%=%~2 )],!!TEAM SET &P4=%&P4%%&P6%|EXIT LOOP
   TEAM CALC &P8=%&P8%-1|IFEX $%&P8%=0,SET &P5=!MSTR &P5=1,%&P8%,%&P6%
   TEAM CALC &P8=%&P7%+%&P8%+1|MSTR &P6=%&P8%,0,%&P6%
   IFEX $[%~3>0 & %&P10%<%~3],TEAM CALC &P10=%&P10%+1|SET &P4=%&P4%%&P5%%&P1%!TEAM CALC &P9=%&P9%+1|SET &P4=%&P4%%&P5%%&P2%
}
TEAM SET-RET %~6=%&P4%|SET &P1=|SET &P2=|SET &P3=|SET &P4=|SET &P5=|SET &P6=|SET &P7=|SET &P8=|SET &P9=|SET &P10=|SET &P11=|
_END

点评

如果有特殊字符之类的,一般是要通过变量传入的。  详情 回复 发表于 2019-2-15 11:24
回复

使用道具 举报

发表于 2019-2-15 11:24:50 | 显示全部楼层
datbik189 发表于 2019-2-15 11:18
SED命令涉及到正则,有些符号有特殊意义.
目前通过这样的方式解决这个问题,只是比较繁琐.

如果有特殊字符之类的,一般是要通过变量传入的。
回复

使用道具 举报

发表于 2019-2-15 22:00:03 来自手机 | 显示全部楼层
527104427 发表于 2019-2-15 21:49
这么复杂?不就是一句命令的事吗:
SET &V1=*
SET &V2=★

当&V1,&Ⅴ2为包括任意的未知的字符串时,如包括+.?等特殊字符时,就不知道怎么弄,头大了,就瞎写一段代码。
回复

使用道具 举报

发表于 2019-2-16 08:04:42 来自手机 | 显示全部楼层
本帖最后由 datbik189 于 2019-2-16 09:03 编辑
527104427 发表于 2019-2-16 01:43
还是一样可以啊,把你觉得不可以的代码贴上来。


SET &V1=C:\WINDOWS\TEST.EXE(1)
SET &V2=X:\TEST.EXE(2)
SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME
SED &V3=0:0,%&V1%,%&V2%,%&V3%
MESS. %&V3%
//结果不正常,
期望的替换结果为X:\TEST.EXE(2)\MYNAME
//&V1,&V2值只是随机出现的一种情况

或者:
SET &V1=.
SET &V2=★
SET. &V3=.\n.\n.
SED &V3=1:1,%&V1%,%&V2%,%&V3%  //&V1中的.应该是代表全部字符吧
MESS. %&V3%

sed命令中貌似没有开关关闭正则,使变量&V1中的.就是.,\就是\,各个字符都是字面上的样子,不转义。

回复

使用道具 举报

发表于 2019-2-16 12:41:39 来自手机 | 显示全部楼层
527104427 发表于 2019-2-16 10:03
&V1的特殊字符前必需加\
&V2的特殊字符前是不能加\的,但\除外

谢谢5大,学了不少知识。我写的那个脚本也基本满足我的要求了,不纠结这个了。
回复

使用道具 举报

发表于 2019-2-26 16:30:51 | 显示全部楼层
本帖最后由 红毛樱木 于 2019-2-26 16:44 编辑

发现很奇葩的问题,好多用户win10系统下这样子。
开一个进程去操作文件:
EXEC =%&MyName% LOAD C:\A.INI
大量使用
FILE -progress
代码复制文件,显示复制进度条,子进程就莫名其妙的随机退出
但是直接使用
FILE
代码复制文件,不显示进度条,完全正常。
这问题我这里没法重现,即使我装别人一样的系统也重现不了。太奇葩。

--------------------------------------------------------------------------------------------------------

使用
EXEC -incmd PECMD LOAD C:\A.INI
也不行

-----------------------------------------------------------------------------------------------------------
但是使用
THREAD -WAIT LOAD C:\A.INI
又可以
但是这样用的话又会造成主程序的UI假死
-----------------------
回复

使用道具 举报

发表于 2019-2-27 16:18:04 | 显示全部楼层
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...

envi^ envimode=1
read %curfile%,**,&V
sed &V=0,.*,\u,%&V%
mess. %&V%
----------------------------
文件大小貌似大于1KB,程序崩溃
Test.jpg

Test.txt

1.25 KB, 下载次数: 3

点评

好像是SED那里挂了  详情 回复 发表于 2019-2-28 13:16
回复

使用道具 举报

发表于 2019-2-28 13:16:34 | 显示全部楼层
本帖最后由 红毛樱木 于 2019-2-28 13:27 编辑
datbik189 发表于 2019-2-27 16:18
envi^ envimode=1
read %curfile%,**,&V
sed &V=0,.*,%u,%&V%


好像是SED那里挂了

这句的问题
sed &V=0,.*,\u,%&V%
--------------------------------------------
测试把\u前面的\去掉就可以了
sed &V=0,.*,u,%&V%
不是很熟悉SED的用法
----------------------------------------------
sed &V=0,.*,\\u,%&V%
这样子是不是你要的效果?

点评

谢谢红大,sed &V=0,.*,%u,%&V%的意思就是把变量&Ⅴ的内容变成大写,\%u不是我要的结果  详情 回复 发表于 2019-2-28 17:57
回复

使用道具 举报

发表于 2019-2-28 17:57:54 来自手机 | 显示全部楼层
本帖最后由 datbik189 于 2019-2-28 18:12 编辑
红毛樱木 发表于 2019-2-28 13:16
好像是SED那里挂了

这句的问题


谢谢红大,sed &V=0,.*,\u,%&V%的意思就是把变量&Ⅴ的内容变成大写,\\u不是我要的结果,变量&V的内容不大于1KB就不会出错。

点评

%u在前面  详情 回复 发表于 2019-3-1 20:21
回复

使用道具 举报

发表于 2019-2-28 18:22:00 | 显示全部楼层
本帖最后由 datbik189 于 2019-2-28 18:33 编辑
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...


不知道这是不是bug?

set &v1==
set &v2==
find $%&v1%=%&v2%,!mess 你看不见我

点评

这种情况你应该这样用了  详情 回复 发表于 2019-3-1 21:58
回复

使用道具 举报

发表于 2019-3-1 20:21:10 来自手机 | 显示全部楼层
本帖最后由 红毛樱木 于 2019-3-1 21:57 编辑
datbik189 发表于 2019-2-28 17:57
谢谢红大,sed &V=0,.*,%u,%&V%的意思就是把变量&Ⅴ的内容变成大写,\%u不是我要的结果,变量&V的内容 ...


确实是的,%&V%变量的内容大小有限制,超过了就崩溃,看来是个BUG。

点评

谢谢红大,自己写了个小脚本解决了,26个字母依次替换: sed -eⅹ &V=0,a,A,&V  详情 回复 发表于 2019-3-1 23:01
回复

使用道具 举报

发表于 2019-3-1 21:58:54 | 显示全部楼层
datbik189 发表于 2019-2-28 18:22
不知道这是不是bug?

set &v1==

这种情况你应该这样用了

  1. set &v1==
  2. set &v2==
  3. IFEX '%&v1%'='%&v2%',! mess 你看不见我
复制代码

点评

又学了一种方法,谢谢  详情 回复 发表于 2019-3-1 23:02
回复

使用道具 举报

发表于 2019-3-1 23:01:43 来自手机 | 显示全部楼层
红毛樱木 发表于 2019-3-1 20:21
确实是的,%&V%变量的内容大小有限制,超过了就崩溃,看来是个BUG。

谢谢红大,自己写了个小脚本解决了,26个字母依次替换: sed -eⅹ &V=0,a,A,&V
回复

使用道具 举报

发表于 2019-3-1 23:02:43 来自手机 | 显示全部楼层
红毛樱木 发表于 2019-3-1 21:58
这种情况你应该这样用了

又学了一种方法,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-9 06:25

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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