无忧启动论坛

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

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

    [复制链接]
18601#
发表于 2023-6-5 20:05:02 | 只看该作者
489432757 发表于 2023-6-5 19:53
-hide 隐藏 jq.exe
* 隐藏 curl.exe
只运行一个控制台程序无所谓 -hide 还是 *

一般这样子写
EXEC* -wait -hide b=curl xxxxxxxxxxxxxxx

点评

就是pecmd啊 试了,这样是可以的 EXEC*| &c=!a.exe | !b.exe  详情 回复 发表于 2023-6-5 20:53
回复

使用道具 举报

18602#
发表于 2023-6-5 20:53:08 | 只看该作者
本帖最后由 泮安宁 于 2023-6-5 20:58 编辑
红毛樱木 发表于 2023-6-5 20:05
一般这样子写
EXEC* -wait -hide b=curl xxxxxxxxxxxxxxx

就是pecmd啊
试了,这样是可以的
EXEC*|  &c=!a.exe  | !b.exe
MESS %&c%

点评

你这里后面的 | !b.exe 是给程序a.exe的参数吗?  详情 回复 发表于 2023-6-5 23:10
回复

使用道具 举报

18603#
发表于 2023-6-5 21:39:18 来自手机 | 只看该作者
本帖最后由 conlin888 于 2023-6-5 21:43 编辑

没见过这么奇怪的用法,一般都是exec* &v=*xxx.exe 参数表 或者 exec* -raw &ⅴ=*xxx.exe 参数表,后者要用code命令转成uni编码。
exec*是捕获管道输出,命令表又用"丨"管道命令,很弄易出错。一般是捕获全部数据,再用sed或lpos查找特定字符。

点评

个人认为: EXEC* -hide &v=xxx.exe 这种比较标准一些。 另外这种捕获应该加上-err+比较稳妥。 EXEC* -hide -err+ &v="d:\xxx.exe"  详情 回复 发表于 2023-6-5 23:09
回复

使用道具 举报

18604#
发表于 2023-6-5 23:09:23 | 只看该作者
conlin888 发表于 2023-6-5 21:39
没见过这么奇怪的用法,一般都是exec* &v=*xxx.exe 参数表 或者 exec* -raw &ⅴ=*xxx.exe 参数表,后者要用 ...

个人认为:
EXEC* -hide &v=xxx.exe
这种比较标准一些。
另外这种捕获应该加上-err+比较稳妥。
EXEC* -hide -err+ &v="d:\xxx.exe"

点评

不错,你的写法比较规范! 我只是习惯了, exec =*xxx.exe 或 exec =@xxx.exe  详情 回复 发表于 2023-6-6 09:31
回复

使用道具 举报

18605#
发表于 2023-6-5 23:10:06 | 只看该作者
泮安宁 发表于 2023-6-5 20:53
就是pecmd啊
试了,这样是可以的
EXEC*|  &c=!a.exe  | !b.exe

你这里后面的
| !b.exe
是给程序a.exe的参数吗?

点评

不是,管道模式,a.exe的输出作为b.exe的输入  详情 回复 发表于 2023-6-5 23:13
回复

使用道具 举报

18606#
发表于 2023-6-5 23:13:18 | 只看该作者
红毛樱木 发表于 2023-6-5 23:10
你这里后面的
| !b.exe
是给程序a.exe的参数吗?

不是,管道模式,a.exe的输出作为b.exe的输入

点评

EXEC*| &c=!a.exe | !b.exe --------------------- 不应该写成这样子才对吗? EXEC* -hide -err+ &c=a.exe ^EXEC -wait -hide b.exe %&c% --------------------- 仅个人观点  详情 回复 发表于 2023-6-5 23:17
回复

使用道具 举报

18607#
发表于 2023-6-5 23:17:50 | 只看该作者
泮安宁 发表于 2023-6-5 23:13
不是,管道模式,a.exe的输出作为b.exe的输入

EXEC*|  &c=!a.exe  | !b.exe
---------------------
不应该写成这样子才对吗?
EXEC* -hide -err+ &c=a.exe
^EXEC -wait -hide b.exe %&c%
---------------------
仅个人观点

点评

上面提到的jq.exe是解析json的程序,它后面的参数好像不能跟你写的这种把json内容保存在变量中的形式,我试过像你这样这,没成功(不知道是不是因为我哪里操作不对),后边参数只能跟本地文件路径,要么就用管道,官方  详情 回复 发表于 2023-6-5 23:36
回复

使用道具 举报

18608#
发表于 2023-6-5 23:36:52 | 只看该作者
本帖最后由 泮安宁 于 2023-6-5 23:38 编辑
红毛樱木 发表于 2023-6-5 23:17
EXEC*|  &c=!a.exe  | !b.exe
---------------------
不应该写成这样子才对吗?

上面提到的jq.exe是解析json的程序,它后面的参数好像不能跟你写的这种把json内容保存在变量中的形式(a.exe返回的内容就是json内容),我试过像你这样写,没成功(不知道是不是因为我哪里操作不对),后边参数只能跟本地文件路径,要么就用管道,官方给的示例也是用的管道传递的
上边有链接你可以下载jq.exe试一下
回复

使用道具 举报

18609#
发表于 2023-6-6 09:27:45 | 只看该作者
本帖最后由 conlin888 于 2023-6-7 11:04 编辑

楼层18607#的大哥已经给出了标准答案.

exec*| &v=*curl.exe -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5"|=*jq.exe "."

或者用cmd中转一下:

exec* &v=*cmd.exe /c for /f "delims=" %%i in ('call curl.exe -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5"^|jq "."^|find /v /n ""') do @echo %%i

//以下命令为去掉行号
//Team set$ &nl=d a|sed -ex &v=0,^\[\d+\],,&v|sed -ex &v=0,%&nl%\[\d+\],%&nl%,&v|sed -ex &v=0,%&nl%$,,&v






回复

使用道具 举报

18610#
发表于 2023-6-6 09:31:06 | 只看该作者
红毛樱木 发表于 2023-6-5 23:09
个人认为:
EXEC* -hide &v=xxx.exe
这种比较标准一些。

不错,你的写法比较规范!

我只是习惯了, exec =*xxx.exe 或  exec =@xxx.exe
回复

使用道具 举报

18611#
发表于 2023-6-9 18:23:31 | 只看该作者
WIN1
_SUB WIN1,W600H400,,,,,,
      TABS tabs1,L0T0H400W600,sub,0x10
_END
_SUB sub,W600H400,,,,
    ENVI @this.bkcolor=0x000000
_END
TABS状态设置为不可见,但是上面还是会空出原来按钮的位置,有没有办法去掉
另外,子界面的个数可以动态增加吗,类似于LIST的
ENVI @下拉列表框名称.ADDSEL=新增加或选择的条目

点评

你这需求,还不如直接SWIN了  详情 回复 发表于 2023-6-9 19:58
回复

使用道具 举报

18612#
发表于 2023-6-9 19:58:43 | 只看该作者
泮安宁 发表于 2023-6-9 18:23
WIN1
_SUB WIN1,W600H400,,,,,,
      TABS tabs1,L0T0H400W600,sub,0x10

你这需求,还不如直接SWIN了

点评

本来是想用的swin,但是不知道怎么实现类似TABS的切换窗口的功能,大佬来个例子  详情 回复 发表于 2023-6-9 20:23
回复

使用道具 举报

18613#
发表于 2023-6-9 20:23:41 | 只看该作者
红毛樱木 发表于 2023-6-9 19:58
你这需求,还不如直接SWIN了

本来是想用的swin,但是不知道怎么实现类似TABS的切换窗口的功能,大佬来个例子

点评

搞按钮对应显示、隐藏swin  详情 回复 发表于 2023-6-10 02:49
回复

使用道具 举报

18614#
发表于 2023-6-10 02:49:24 来自手机 | 只看该作者
泮安宁 发表于 2023-6-9 20:23
本来是想用的swin,但是不知道怎么实现类似TABS的切换窗口的功能,大佬来个例子

搞按钮对应显示、隐藏swin

点评

这个早就试过不管用才想着用tabs大佬看看我哪里写的不对  详情 回复 发表于 2023-6-10 12:47
回复

使用道具 举报

18615#
发表于 2023-6-10 12:47:11 | 只看该作者
红毛樱木 发表于 2023-6-10 02:49
搞按钮对应显示、隐藏swin
  1. WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN swin1:page1:a,L0T0W600H400,,0x180
  4.     ENVI @a.visable=0
  5.     SWIN swin2:page2:b,L0T0W600H400,,0x180   
  6.     ENVI @b.visable=1
  7.     ITEM ITEM0,L289T418W60H30,切换,TEAM ENVI @a.visable=1|ENVI @b.visable=0,
  8. _END
  9. _SUB page1,W600H400,
  10.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  11. _END
  12. _SUB page2,W600H400,
  13.     ENVI @this.bkcolor=0x000000
  14.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  15. _END
复制代码
这个早就试过不管用才想着用tabs大佬看看我哪里写的不对

点评

第二种格式比较省事的。  详情 回复 发表于 2023-6-10 20:35
回复

使用道具 举报

18616#
发表于 2023-6-10 20:35:41 | 只看该作者
泮安宁 发表于 2023-6-10 12:47
这个早就试过不管用才想着用tabs大佬看看我哪里写的不对
  1. CALL @WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN -:page1:,L0T0W600H400,,0x180
  4.     ENVI @a.visable=0
  5.     SWIN -:page2:,L0T0W600H400,,0x190   
  6.     ENVI @b.visable=1
  7.     ITEM ,L189T418W60H30,显示page1,TEAM ENVI @page1.visable=1| ENVI @page2.visable=0,
  8.     ITEM ,L289T418W60H30,显示page2,TEAM ENVI @page1.visable=0| ENVI @page2.visable=1,
  9. _END
  10. _SUB page1,W600H400,
  11.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  12. _END
  13. _SUB page2,W600H400,
  14.     ENVI @this.bkcolor=0x000000
  15.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  16. _END
复制代码


第二种格式比较省事的。

点评

这个格式和我写的那种格式子窗口控件层级一样吗,不一样的话代码要大改了  详情 回复 发表于 2023-6-10 20:43
回复

使用道具 举报

18617#
发表于 2023-6-10 20:43:55 | 只看该作者
本帖最后由 泮安宁 于 2023-6-10 21:01 编辑
红毛樱木 发表于 2023-6-10 20:35
第二种格式比较省事的。

这个格式和我写的那种格式子窗口控件层级一样吗,不一样的话代码要大改了这种格式没有画框名,画框id怎么获取

点评

那就按你的写,visible不是visable  详情 回复 发表于 2023-6-11 01:52
回复

使用道具 举报

18618#
发表于 2023-6-11 01:52:23 | 只看该作者
泮安宁 发表于 2023-6-10 20:43
这个格式和我写的那种格式子窗口控件层级一样吗,不一样的话代码要大改了这种格式没有画框名, ...
  1. CALL @WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN swin1:page1:a,L0T0W600H400,,0x180
  4.     ENVI @a.visible=0
  5.     SWIN swin2:page2:b,L0T0W600H400,,0x180   
  6.     ENVI @b.visible=1
  7.     ITEM ITEM0,L289T418W60H30,切换,TEAM ENVI @a.visible=1| ENVI @b.visible=0,
  8. _END
  9. _SUB page1,W600H400,
  10.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  11. _END
  12. _SUB page2,W600H400,
  13.     ENVI @this.bkcolor=0x000000
  14.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  15. _END
复制代码


那就按你的写,visible不是visable

点评

说明书里备注的,第一种格式是“//画中画” 在你这里a和b不是SWIN的主窗口。参考示例代码中的:SWIN穿透操作.wcs --------------------------------------- 好像ENVI @b:swin2.Visible=0这样直接操作不行,看  详情 回复 发表于 2023-6-11 15:34
没注意到写错了,我一直都用的旧版pecmd(PECMD2012.1.88.05.94Stable-220728U测试.7z),这个格式一直不行,你写的那个格式可以,今天换了最新版,格式一也可以了应该是个bug  详情 回复 发表于 2023-6-11 02:58
回复

使用道具 举报

18619#
发表于 2023-6-11 02:58:25 | 只看该作者
本帖最后由 泮安宁 于 2023-6-11 03:08 编辑
红毛樱木 发表于 2023-6-11 01:52
那就按你的写,visible不是visable

没注意到写错了,我一直都用的旧版pecmd(PECMD2012.1.88.05.94Stable-220728U测试.7z),这个格式一直不行,你写的那个格式可以,今天换了最新版,格式一也可以了应该是个bug
--------------------------------------
最新版也有问题,背景色可以显示出来了,但切换后按钮不能点
要不还是用你写的那个格式吧,响应滚动条的示例要怎么改成格式2
  1. SWIN SWIN1:Page11:-SWINMAIN,L42T30W194H500,,0x40
  2. ENVI @SWINMAIN:SWIN1.ID=?&Swin1_Wid   //画框ID
  3. ENVI @SWINMAIN.ID=?&SWINMAIN_Wid    //与Page11窗口ID相同%&Page1_WID%
复制代码




回复

使用道具 举报

18620#
发表于 2023-6-11 15:34:15 | 只看该作者
本帖最后由 红毛樱木 于 2023-6-11 15:35 编辑
红毛樱木 发表于 2023-6-11 01:52
那就按你的写,visible不是visable
  1. CALL @WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN swin1:page1:a,L0T0W600H400,,0x180
  4.     ENVI @a:swin1.ID=?&swin1_Wid
  5.     ENVI @@Visible=%&swin1_Wid%:0
  6.     SWIN swin2:page2:b,L0T0W600H400,,0x180
  7.     ENVI @b:swin2.ID=?&swin2_Wid
  8.     ITEM ITEM0,L289T418W60H30,切换,TEAM ENVI @@Visible=%&swin2_Wid%:0| ENVI @@Visible=%&swin1_Wid%:1
  9. _END
  10. _SUB page1,W600H400,
  11.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  12. _END
  13. _SUB page2,W600H400,
  14.     ENVI @this.bkcolor=0x000000
  15.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  16. _END
复制代码


说明书里备注的,第一种格式是“//画中画”
在你这里a和b不是SWIN的主窗口。参考示例代码中的:SWIN穿透操作.wcs
---------------------------------------
好像ENVI @b:swin2.Visible=0这样直接操作不行,看样子还需要M大处理一下这种格式。

点评

谢谢,这次可以了  详情 回复 发表于 2023-6-11 17:14
回复

使用道具 举报

18621#
发表于 2023-6-11 16:08:33 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

18622#
发表于 2023-6-11 17:14:42 | 只看该作者
红毛樱木 发表于 2023-6-11 15:34
说明书里备注的,第一种格式是“//画中画”
在你这里a和b不是SWIN的主窗口。参考示例代码中的:SWIN ...

谢谢,这次可以了
回复

使用道具 举报

18623#
发表于 2023-6-12 08:05:36 | 只看该作者
回复

使用道具 举报

18624#
发表于 2023-6-12 20:55:38 | 只看该作者
整理一下 18536 楼反馈的问题:
PECMD2012.1.88.05.94Stable-230422 版本,对于某些磁盘的0x07分区被手动改成0x42之后,用下面的指令获取不到信息,返回的%error%值是1。
指令如下: PART list part 1,&DiskInfo,指令返回的结果是空的,磁盘的分区信息如下图。
而用不支持动态磁盘的  PECMD_2012.1.88.05.94_Stable-220728W  版本则正常识别分区。

点评

PECMD==========Anson4.7z PART -gui [attachimg]541856[/attachimg]  详情 回复 发表于 2024-5-20 12:08
这人真狡猾。 改成0x42 迷惑人。  详情 回复 发表于 2024-5-19 17:27
0x42是动态磁盘吧?这个好像就不规范,可能需要特殊处理。  详情 回复 发表于 2023-6-13 01:55
回复

使用道具 举报

18625#
发表于 2023-6-13 01:55:53 来自手机 | 只看该作者
Anson4 发表于 2023-6-12 20:55
整理一下 18536 楼反馈的问题:
PECMD2012.1.88.05.94Stable-230422 版本,对于某些磁盘的0x07分区被手动 ...

0x42是动态磁盘吧?这个好像就不规范,可能需要特殊处理。

点评

这种情形,如果是识别不了该分区,好像问题也还不算大,可是整块硬盘的分区都识别不了,这样误会很大。  详情 回复 发表于 2023-6-13 11:16
回复

使用道具 举报

18626#
发表于 2023-6-13 11:16:28 | 只看该作者
红毛樱木 发表于 2023-6-13 01:55
0x42是动态磁盘吧?这个好像就不规范,可能需要特殊处理。

这种情形,如果是识别不了该分区,好像问题也还不算大,可结果是整块硬盘的分区都识别不了,误会很大。
回复

使用道具 举报

18627#
发表于 2023-6-13 21:49:01 来自手机 | 只看该作者
M大很少来了,估计不久后就会迎来终结版本。

点评

生活大于一切  详情 回复 发表于 2023-6-13 23:19
回复

使用道具 举报

18628#
发表于 2023-6-13 23:19:59 来自手机 | 只看该作者
conlin888 发表于 2023-6-13 21:49
M大很少来了,估计不久后就会迎来终结版本。

生活大于一切
回复

使用道具 举报

18629#
发表于 2023-6-15 14:07:03 | 只看该作者
EDIT更新显示.wcs
EDIT加上 -vcenter,使用拖入文件名就不会更新显示了,应该是个bug吧
回复

使用道具 举报

18630#
发表于 2023-6-18 19:03:14 | 只看该作者
各位大佬,动态创建的按钮,如何才能知道点击了哪一个按钮呢,并能获取到点击按钮的文本
简单代码如下

_SUB WIN2,W500H100,新窗口2,,,
    SCRN &ScrW,&ScrH
    ENVI &&ItemStr=第一个|第二个|第三个|第四个|第五个|第六个|第七个|第八个|第九个
    SED &ItemStr=0,|,\r\n,%&ItemStr%
    ENVI &&ItemL=0
    ENVI &&WinW=0
    ENVI &&WinH=100
    ENVI &&行数=0
    ENVI &&次数=0
    FORX *NL &ItemStr,&&ItemStrLen,
    {
        CALC #&临时行数=%&次数%/4
        FIND $%&临时行数%>%&行数%,TEAM ENVI &行数=%&临时行数%|ENVI &ItemL=0|CALC  &WinH=%&WinH%+120
        CALC &ItemT=%&行数%*120                    
        ITEM  ITEM%&次数%,L%&ItemL%T%&ItemT%W150H100,%&ItemStrLen%,,
        CALC &WinWTEMP=%&ItemL%+150         
        FIND $%&WinWTEMP%>%&WinW%,ENVI &WinW=%&WinWTEMP%  
        CALC #&WinT=(%&ScrH%-%&WinH%)/2   
        CALC #&WinL=(%&ScrW%-%&WinW%)/2
        ENVI @this.POS=%&WinL%:%&WinT%:%&WinW%:%&WinH%        
        CALC &ItemL=%&ItemL%+170      
        CALC &次数=%&次数%+1
    }   
   
_END

点评

这个地方,为啥不直接用换行符。SET$ NL=0d 0a ENVI &&ItemStr=第一个%&NL%第二个%&NL%第三个%&NL%第四个%&NL%第五个%&NL%第六个%&NL%第七个%&NL%第八个%&NL%第九个  详情 回复 发表于 2023-6-20 14:51
item前加上^先解释一遍  详情 回复 发表于 2023-6-18 21:51
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

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

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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