无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog
打印 上一主题 下一主题

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

    [复制链接]
19291#
发表于 5 天前 | 只看该作者
mdyblog 发表于 2024-6-5 23:36
新版上传了
- 加前面,加后面,都可以。不就是参数提取嘛。
m:n

还有个BUG,SED &v3=2:-2,%&NL%,-,%&v1%怎么变成了SED &v3=2:-2,%&NL%,,%&v1%没被“-"代替

点评

忙忘了, 还有替换串。 改了 ENVI^ EnviMode=1 SET$ &NL=0d 0a SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5 SED &v2=2:2,%&NL%,-,%&v1% SED &v3=2:-0,%&NL%,-,%&v1% MESS. v1[%&NL%%&v1%]%&NL%%&NL%  详情 回复 发表于 5 天前
回复

使用道具 举报

19292#
 楼主| 发表于 5 天前 | 只看该作者
hhh333 发表于 2024-6-6 09:28
还有个BUG,SED &v3=2:-2,%&NL%,-,%&v1%怎么变成了SED &v3=2:-2,%&NL%,,%&v1%没被“-"代替

忙忘了, 还有替换串。
改了
ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=2:2,%&NL%,-,%&v1%
SED &v3=2:-0,%&NL%,-,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%%&NL% v2[%&NL%%&v2%]%&NL%%&NL% v3[%&NL%%&v3%]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  v1[
1A11
2A22
3A33
4A44
55A5]

v2[
1A11
2A22
3A33-4A44-55A5]

v3[
1A11
2A22
3A33-4A44-55A5]


点评

这次是彻底妥了  详情 回复 发表于 5 天前
回复

使用道具 举报

19293#
 楼主| 发表于 5 天前 | 只看该作者
本帖最后由 mdyblog 于 2024-6-6 12:53 编辑
Zap 发表于 2024-6-6 08:40
比如按2次回车光标在第二行 点击一个ITEM 就能在光标位置插入预设的代码

示例\Edit位置.wcs

获得光标位置:
GetPos  EditName PosStart   PosEnd

移动动光标 到位置(可选择一段)
SetPos  EditName PosStart   [PosEnd]

替换,插入,删除 参见
示例\RichEdit-替换特殊符号.wcs 的 OnInit函数


_SUB SetAt  //   EditName PosStart   PosEnd   "内容"
    SET &d2=%~3
    FIND $%&d2%=, SET &d2=%~2
    ENVI @%~1.SENDMSG=%EM_SETSEL%,%~2,%d&2%
    ENVI @%~1.SENDMSG=%EM_REPLACESEL%,7,$%~4
_END




GetPos  &EG1   &&PosStart   &&PosEnd


//SetPos  &EG1   %&PosStart%   %&PosEnd%


SetAt  &EG1  %&PosStart% ""   "&NewDat"
SetAt  &EG1  1 ""   "&NewDat"
回复

使用道具 举报

19294#
发表于 5 天前 | 只看该作者
本帖最后由 hhh333 于 2024-6-6 16:06 编辑
mdyblog 发表于 2024-6-6 12:25
忙忘了, 还有替换串。
改了
ENVI^ EnviMode=1

这次是彻底妥了
1、SED A=0或-0,  表示代替所有
2、SED A=X:Y,  表示左起Y+1位替代X次;
     SED A=-X:Y,或X:-Y,  表示右起Y+1位替代X次
3、SED A=N,  表示左起替代N次;
     SED A=-N,  表示右起替代N次
4、SED A=,即为空  表示左起首个位替代,相当于SED A=1:0,
     SED A=-,即只有负号  表示右起首个位替代,相当于SED A=-1:0或1:-0




点评

那好  详情 回复 发表于 5 天前
回复

使用道具 举报

19295#
发表于 5 天前 | 只看该作者
mdyblog 发表于 2024-6-6 12:52
示例\Edit位置.wcs

获得光标位置:

谢谢 好使
回复

使用道具 举报

19296#
发表于 5 天前 | 只看该作者
mdyblog 发表于 2024-6-6 12:52
示例\Edit位置.wcs

获得光标位置:

但是新的问题又出现了 如果替换内容中 有:会被吞 不知道怎样转义
例如:mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\iBAT.lnk""):b.TargetPath=""%~dp0iBAT.exe"":b.WorkingDirectory=""%~dp0"":b.Save:close")"
会把:后内容全吞掉 而只有mshta VBScript 我用set代入也一样

点评

???????????????????????  详情 回复 发表于 5 天前
回复

使用道具 举报

19297#
发表于 5 天前 | 只看该作者
mdyblog 发表于 2024-6-6 12:52
示例\Edit位置.wcs

获得光标位置:

/也会被吞

点评

????????????、  详情 回复 发表于 5 天前
回复

使用道具 举报

19298#
 楼主| 发表于 5 天前 | 只看该作者
hhh333 发表于 2024-6-6 15:51
这次是彻底妥了
1、SED A=0或-0,  表示代替所有
2、SED A=X:Y,  表示左起Y+1位替代X次;

那好
回复

使用道具 举报

19299#
 楼主| 发表于 5 天前 | 只看该作者
Zap 发表于 2024-6-6 18:37
但是新的问题又出现了 如果替换内容中 有:会被吞 不知道怎样转义
例如:mshta VBScript:Execute("Set a= ...

???????????????????????
回复

使用道具 举报

19300#
 楼主| 发表于 5 天前 | 只看该作者

????????????、
回复

使用道具 举报

19301#
发表于 5 天前 | 只看该作者
我也没太看懂,怎么被呑
回复

使用道具 举报

19302#
发表于 5 天前 | 只看该作者
本帖最后由 Zap 于 2024-6-7 08:18 编辑
  1. #code=936T950
  2. ENVI^ EnviMode=1
  3. ENVI^ ForceLocal=1
  4. SET$ &NL=0d 0a
  5. SET &EM_GETSEL=0x00B0
  6. SET &EM_SETSEL=0x00B1
  7. SET &EM_REPLACESEL=0x00C2

  8. SET &WM_LBUTTONDOWN=0x0201
  9. SET &WM_LBUTTONUP=0x0202

  10. CALL @Calc_exe

  11. _SUB Calc_exe,W536H628,计算器,
  12.     set &&Top=30
  13.     set &LogInfosShow=Proce
  14.     MEMO-+ -rich &&EC,L15T%&&Top%W460H(480 - %&&Top% - 6 - 4),%&LogInfosShow%,,0x200
  15.     LABE LABE1,L11T516W409H30,,,
  16.     set @this.MSG=+%&WM_LBUTTONDOWN%: OnMouse d
  17.     set @this.MSG=+%&WM_LBUTTONUP%: OnMouse u
  18.     LABE -mod -vcenter -center &&I1,L10T0W60H30,移到3,
  19.     LABE -mod -vcenter -center &&I2,L80T0W60H30,移到7,
  20.     LABE -mod -vcenter -center &&I3,L150T0W60H30,查询,TEAM GetPos &&EC &&v1 &&v2|set @LABE1=位置 %&v1% %&v2%
  21.    
  22.         set n=210
  23.         forx* A B C D,i,team ^LABE -mod &&%i%,L%n%T0W30H30,%i%,GetPos &&EC &&v1 &&v2|calc n=%n%+30
  24.        
  25.    
  26. //  set @this.MSG=#1: OnInit
  27.     set @this.POSTMSG=#1
  28. _END

  29. //保存为UniCode 则可以显示
  30. _SUB OnInit  //显示特殊字符
  31.     set @&&EC.SENDMSG=%EM_SETSEL%,0x71,0x78
  32.     set @&&EC.SENDMSG=%EM_REPLACESEL%,7,$® Core™   //®™
  33. _END

  34. _SUB OnMouse
  35.         set @this.Cur=?&&X;&&Y;&&cX;&&cY
  36.         set &a=%%%%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  37.        
  38.         set &b=mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\iBAT.lnk""):b.TargetPath=""%~dp0iBAT.exe"":b.WorkingDirectory=""%~dp0"":b.Save:close")
  39.        
  40.         set &c=for %%%%%%%%i in (bat cmd)do (%nl%reg add "HKCR\SystemFileAssociations\.%%%%%%%%i\shell\iBAT" /t REG_SZ /d "用iBAT打开" /f%nl%reg add "HKCR\SystemFileAssociations\.%%%%%%%%i\shell\iBAT" /v Icon /t REG_SZ /d "%%%%~dp0iBAT.exe" /f%nl%reg add "HKCR\SystemFileAssociations\.%%%%i\shell\iBAT\command" /t REG_SZ /d "%~dp0iBAT.exe ""%%%%%%%%1" /f%nl%)
  41.        
  42.         set &d=(echo for %%%%%%%%i in ^(bat cmd^)do reg delete "HKCR\SystemFileAssociations\.%%%%%%%%i\shell\iBAT" /f%nl%echo taskkill /f /im iBAT.exe /t^&TIMEOUT /T 1 /NOBREAK^&del "%%%%userprofile%%%%\desktop\iBAT.lnk"^&cd..^&rd/s/q "%%%%~dp0")>"%~dp0卸载.bat"
  43.                
  44.         TryIt  10 0 60 30 %1 TEAM Set_Color &&I1|SetPos &&EC 3 3
  45.         TryIt 80 0 60 30 %1 TEAM Set_Color &&I2|SetPos &&EC 7 27
  46.         TryIt 150 0 60 30 %1 TEAM Set_Color &&I3|GetPos &&EC &&v1 &&v2|set @LABE1=位置 %&v1% %&v2%       
  47.         TryIt 210 0 30 30 %1 TEAM Set_Color &&A|SetAt &&EC %&v1% %&v2% "%&a%"  //编辑名称 位置开始 位置结束 "内容"
  48.         TryIt 240 0 30 30 %1 TEAM Set_Color &&B|SetAt &&EC %&v1% %&v2% "%&b%"
  49.         TryIt 270 0 30 30 %1 TEAM Set_Color &&C|SetAt &&EC %&v1% %&v2% "%&c%"
  50.         TryIt 300 0 30 30 %1 TEAM Set_Color &&D|SetAt &&EC %&v1% %&v2% "%&d%"
  51. _END

  52. _SUB Set_Color
  53.         TEAM set @%~1.bkcolor=0xDF0029|WAIT 20| set @%~1.bkcolor=-1
  54. _END

  55. _SUB TryIt  
  56.         set &&X1=%1
  57.         set &&Y1=%2
  58.         set &&W=%3
  59.         set &&H=%4
  60.         CALC &&X2=%X1% + %W%
  61.         CALC &&Y2=%Y1% + %H%
  62.       MSTR &cmd=<6->%*
  63.         IFEX $%&cX%>%&X1%,!! IFEX $%&cX%<%&X2%,!! IFEX $%&cY%>%&Y1%,!! IFEX $%&cY%<%&Y2%,!! FIND $%5<>d, %&cmd%
  64. _END

  65. // GetPos  EditName PosStart PosEnd
  66. _SUB GetPos
  67.     SET$# &D1=*8 0
  68.     SET$# &D2=*8 0
  69.     set @%1.SENDMSG=%EM_GETSEL%,@&D1,@&D2
  70.     ENVI?long &D1=&&v1
  71.     ENVI?long &D2=&&v2
  72.     ENVI-ret  %~2=%&v1%
  73.     ENVI-ret  %~3=%&v2%
  74. _END

  75. _SUB SetPos
  76.     SET &d2=%~3
  77.     FIND $%&d2%=,SET &d2=%~2
  78.     set @%1.POSTMSG=%EM_SETSEL%,%~2,%d2%
  79. _END
  80. _SUB SetAt
  81.     SET &d2=%~3
  82.     set &d3=%~4
  83.     FIND $%&d2%=, SET &d2=%~2
  84.     set @%~1.SENDMSG=%EM_SETSEL%,%~2,%d2%
  85.     set @%~1.SENDMSG=%EM_REPLACESEL%,7,@&d3
  86. _END
复制代码

还不理想 如果加入DPI缩放情况不容乐观

点评

太长了。 最小代码,仅仅够 演示 你的问题。  详情 回复 发表于 5 天前
回复

使用道具 举报

19303#
 楼主| 发表于 5 天前 | 只看该作者

太长了。 最小代码,仅仅够 演示 你的问题。
回复

使用道具 举报

19304#
发表于 5 天前 | 只看该作者
本帖最后由 Zap 于 2024-6-6 21:37 编辑
mdyblog 发表于 2024-6-6 20:29
太长了。 最小代码,仅仅够 演示 你的问题。
52行替换为 set d=123:456 : 后边的字符被吞了

点评

试试 SED -ts1 这个 禁止 转义符。 就是普通字符串 替换。 ENVI^ EnviMode=1 SET$ &NL=0d 0a SET V1=123X456 SED -ts1 &v2=,X,\1,%&V1% MESS. v1[%&NL%%&v1%]%&NL%%&NL% v2[%&NL%%&v2%] ============  详情 回复 发表于 5 天前
如是sed问题 但对写一个 小脚本 演示问题。  详情 回复 发表于 5 天前
回复

使用道具 举报

19305#
 楼主| 发表于 5 天前 | 只看该作者
Zap 发表于 2024-6-6 21:33
52行替换为 set d=123:456 : 后边的字符被吞了

如是sed问题
专门 写一个 小脚本 演示问题。
回复

使用道具 举报

19306#
 楼主| 发表于 5 天前 | 只看该作者
新版 可以 返会 字体名称

FONT   -p:&&f:&&fnm segmdl2.ttf.cmz
MESS. font:[%&f%]  [%&fnm%]

=================
font:[0x700021B]  ["Segoe MDL2 Assets"]
回复

使用道具 举报

19307#
发表于 5 天前 | 只看该作者
本帖最后由 Zap 于 2024-6-6 21:59 编辑
mdyblog 发表于 2024-6-6 21:38
如是sed问题
专门 写一个 小脚本 演示问题。

19302楼已修改 点替换便知set d=123:456 而光标处替换成了"123
回复

使用道具 举报

19308#
发表于 5 天前 | 只看该作者
LOAD --mem可以支持偏移吗

点评

//LOAD --mem &MyStript A B C SET-mkfixdummy &MyStript3 =&MyStript@$16;~ //偏移16WCHAR LOAD --mem &MyStript16 A B C  详情 回复 发表于 5 天前
回复

使用道具 举报

19309#
 楼主| 发表于 5 天前 | 只看该作者
泮安宁 发表于 2024-6-6 22:05
LOAD --mem可以支持偏移吗

//LOAD --mem &MyStript A B C  
SET-mkfixdummy  &MyStript3 =&MyStript@$16;~  //偏移16WCHAR
LOAD --mem &MyStript16 A B C  

点评

load --mem好像不支持动态改变啊,比如load --mem &a但&a中有一句清空a内容的语句,那么清空语句后面的命令继续执行时因内容改变应该导致执行结果相应改变(在这个例子中应该没有反应) a的原始内容为  详情 回复 发表于 5 天前
回复

使用道具 举报

19310#
 楼主| 发表于 5 天前 | 只看该作者
Zap 发表于 2024-6-6 21:33
52行替换为 set d=123:456 : 后边的字符被吞了

试试 SED -ts1
这个 禁止 转义符。 就是普通字符串 替换。

ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET V1=123X456
SED  -ts1  &v2=,X,\1,%&V1%
MESS.   v1[%&NL%%&v1%]%&NL%%&NL% v2[%&NL%%&v2%]

=================
  v1[
123X456]

v2[
123\1456

回复

使用道具 举报

19311#
发表于 5 天前 | 只看该作者
mdyblog 发表于 2024-6-6 22:27
//LOAD --mem &MyStript A B C  
SET-mkfixdummy  &MyStript3 =&MyStript@$16;~  //偏移16WCHAR
LOAD - ...

load --mem好像不支持动态改变啊,比如load --mem &a但&a中有一句清空a内容的语句,那么清空语句后面的命令继续执行时因内容改变应该导致执行结果相应改变(在这个例子中应该没有反应)
  1. ENVI$# &a=0x4D 0x45 0x53 0x53 0x20 0x61 0x61 0x61 0x0D 0x0A 0x45 0x4E 0x56 0x49 0x2D 0x7A 0x65 0x72 0x6F 0x20 0x26 0x61 0x3D 0x0D 0x0A 0x4D 0x45 0x53 0x53 0x20 0x62 0x62 0x62
  2. LOAD --mem &a
复制代码
a的原始内容为
  1. MESS aaa
  2. ENVI-zero &a=
  3. MESS bbb
复制代码


点评

为什么要动态改变, 什么用处?  详情 回复 发表于 5 天前
回复

使用道具 举报

19312#
 楼主| 发表于 5 天前 | 只看该作者
泮安宁 发表于 2024-6-6 23:04
load --mem好像不支持动态改变啊,比如load --mem &a但&a中有一句清空a内容的语句,那么清空语句后面的命 ...

为什么要动态改变, 什么用处?

点评

看说明说支持 LOAD [--logs:[*]log文件名] --mem 变量名 [命令行参数] //运行内存动态文件代码 可能我理解错了  详情 回复 发表于 5 天前
回复

使用道具 举报

19313#
发表于 5 天前 | 只看该作者
本帖最后由 泮安宁 于 2024-6-6 23:37 编辑
mdyblog 发表于 2024-6-6 23:22
为什么要动态改变, 什么用处?

看说明说支持
  1. LOAD [--logs:[*]log文件名]  --mem 变量名 [命令行参数]      //运行内存动态文件代码
复制代码


可能我理解错了,以为是实时改变的
回复

使用道具 举报

19314#
发表于 4 天前 | 只看该作者
mdyblog 发表于 2024-6-6 22:42
试试 SED -ts1
这个 禁止 转义符。 就是普通字符串 替换。

19302楼已修改 但不理想
回复

使用道具 举报

19315#
发表于 3 天前 | 只看该作者
PECMD怎么判断服务是否被禁用(手动、自动),比如 defragsvc 。以及怎么判断这个服务是否存在,没被精简

点评

SERV有查询功能,多试几下就晓得了  详情 回复 发表于 3 天前
回复

使用道具 举报

19316#
发表于 3 天前 来自手机 | 只看该作者
liangnijian 发表于 2024-6-8 10:17
PECMD怎么判断服务是否被禁用(手动、自动),比如 defragsvc 。以及怎么判断这个服务是否存在,没被精简

SERV有查询功能,多试几下就晓得了
回复

使用道具 举报

19317#
发表于 前天 16:56 | 只看该作者
辛苦了
回复

使用道具 举报

19318#
发表于 昨天 17:17 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-11 06:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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