无忧启动论坛

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

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

    [复制链接]
18571#
发表于 2023-5-20 23:22:21 | 只看该作者
红毛樱木 发表于 2023-5-20 22:22
你这和实例代码不一样吧。
实例代码里都调用API实现的
CALL $--qd user32.dll,SetScrollInfo,#%SWIN1_W ...

谢谢,可以了
回复

使用道具 举报

18572#
发表于 2023-5-21 14:17:44 | 只看该作者
有时候需要对一些内容进行解析之后在创建控件,或者动态创建很多控件,创建控件就会花费很多时间
  1. WIN1
  2. _SUB WIN1,W548H370,新窗口1,
  3.     TEAM WAIT 2000|ITEM ITEM1,L72T117W60H30,ITEM1,
  4. _END
复制代码
怎么先生成窗口,然后在生成控件呢
我试了这样也不行
  1. WIN1
  2. _SUB WIN1,W548H370,新窗口1,
  3.     THREAD* TEAM WAIT 2000|ITEM ITEM1,L72T117W60H30,ITEM1,
  4. _END
复制代码


点评

WIN1 _SUB WIN1,W548H370,新窗口1, ENVI @WIN1.Visible=1 XXXXXXXXXXXXXXXXXXXXXXX _END  详情 回复 发表于 2023-5-21 15:01
回复

使用道具 举报

18573#
发表于 2023-5-21 14:49:01 | 只看该作者
红毛樱木 发表于 2023-5-20 22:22
你这和实例代码不一样吧。
实例代码里都调用API实现的
CALL $--qd user32.dll,SetScrollInfo,#%SWIN1_W ...

请教一下红毛:EDIT控件的内容被自动换行的情况下,用什么办法能检测到一共有几行呢?

点评

没研究过,暂时不知道。  发表于 2023-5-21 15:03
回复

使用道具 举报

18574#
发表于 2023-5-21 15:01:43 | 只看该作者
本帖最后由 红毛樱木 于 2023-5-21 15:09 编辑
泮安宁 发表于 2023-5-21 14:17
有时候需要对一些内容进行解析之后在创建控件,或者动态创建很多控件,创建控件就会花费很多时间
怎么先生 ...

可以先让窗口显示出来,再执行后面的代码。
--------------------------------------
CALL @WIN1
_SUB WIN1,W548H370,新窗口1,
    ENVI @WIN1.Visible=1
    XXXXXXXXXXXXXXXXXXXXXXX
_END
-----------------------------------------------------
也可以用定时器
CALL @WIN1
_SUB WIN1,W548H370,新窗口1,
    TIME -t:1 ,1,CALL XXXXXXXXXXXXXXXXXXXXXXX
_END

点评

第一种好像只是先显示出窗口,但动态创建控件时,不是创建一个就显示一个,还是等循环结束,把所有的一块显示出来,没达到想要的效果  详情 回复 发表于 2023-5-21 17:50
谢谢红毛  详情 回复 发表于 2023-5-21 15:23
回复

使用道具 举报

18575#
发表于 2023-5-21 15:23:18 | 只看该作者
红毛樱木 发表于 2023-5-21 15:01
可以先让窗口显示出来,再执行后面的代码。
--------------------------------------
CALL @WIN1

谢谢红毛
回复

使用道具 举报

18576#
发表于 2023-5-21 17:50:31 | 只看该作者
红毛樱木 发表于 2023-5-21 15:01
可以先让窗口显示出来,再执行后面的代码。
--------------------------------------
CALL @WIN1

第一种好像只是先显示出窗口,但动态创建控件时,不是创建一个就显示一个,还是等循环结束,把所有的一块显示出来,没达到想要的效果

点评

WAIT有个小于1的参数值,试试看  详情 回复 发表于 2023-5-21 20:31
回复

使用道具 举报

18577#
发表于 2023-5-21 20:31:35 来自手机 | 只看该作者
泮安宁 发表于 2023-5-21 17:50
第一种好像只是先显示出窗口,但动态创建控件时,不是创建一个就显示一个,还是等循环结束,把所有的一块 ...

WAIT有个小于1的参数值,试试看

点评

好的  详情 回复 发表于 2023-5-21 21:27
回复

使用道具 举报

18578#
发表于 2023-5-21 21:27:24 | 只看该作者
红毛樱木 发表于 2023-5-21 20:31
WAIT有个小于1的参数值,试试看

好的
回复

使用道具 举报

18579#
发表于 2023-5-22 14:05:37 | 只看该作者
谢谢分享         
回复

使用道具 举报

18580#
发表于 2023-5-23 22:50:35 | 只看该作者
发现CALL命令的函数参数不能含有*,如果参数含有*参数内容会被截断
  1. CALL c a*b
  2. _SUB c
  3.     ^MESS %*
  4. _END
复制代码
有办法解决吗

点评

没有被截断,MESS最后的一个@可以充当定界符,否则你这里就“[*自动关闭的时间(毫秒)]”  详情 回复 发表于 2023-5-24 00:46
回复

使用道具 举报

18581#
发表于 2023-5-24 00:46:17 | 只看该作者
泮安宁 发表于 2023-5-23 22:50
发现CALL命令的函数参数不能含有*,如果参数含有*参数内容会被截断
有办法解决吗
  1. CALL c a*b
  2. _SUB c
  3.     ^MESS %*@
  4. _END
复制代码


没有被截断,MESS最后的一个@可以充当定界符,否则你这里就“[*自动关闭的时间(毫秒)]”

点评

也就是只是MESS显示的看起来不对,实际变量引用时还是正确的,对吧  详情 回复 发表于 2023-5-24 01:19
回复

使用道具 举报

18582#
发表于 2023-5-24 01:19:49 | 只看该作者
红毛樱木 发表于 2023-5-24 00:46
没有被截断,MESS最后的一个@可以充当定界符,否则你这里就“[*自动关闭的时间(毫秒)]”

也就是只是MESS显示的看起来不对,实际变量引用时还是正确的,对吧
回复

使用道具 举报

18583#
发表于 2023-5-25 20:54:29 | 只看该作者
回复

使用道具 举报

18584#
发表于 2023-5-26 10:45:44 | 只看该作者
报道学习
回复

使用道具 举报

18585#
发表于 2023-5-27 21:04:57 | 只看该作者
本帖最后由 泮安宁 于 2023-5-27 21:12 编辑

为什么开启多线程给labe设置文字就不行了呢
  1. WIN1
  2. _SUB WIN1,W580H330
  3.       ENVI &&n=1
  4.       ENVI &&T=10
  5.       TIME -t:1 T,0,LOOP #%&&n%<=5,TEAM CALL page1|CALC &n=%&n%+1|WAIT 0.9999
  6.       CALL set
  7. _END
  8. _SUB page1
  9.       LABE -left -w &LABE%&n%,L10T%&T%W550H60,,,
  10.       CALC &T=%&T%+70
  11. _END
  12. _SUB set
  13.       ENVI$ &NL=0d 0a
  14.       ENVI &a=1111111%&NL%222222222222%&NL%3333333333333333%&NL%44444444444444444%&NL%55555555555555
  15.       ENVI &sn=1
  16.         FORX *NL &a,&&b,
  17.       {*
  18.             THREAD*$ CALL ccc %&&b%
  19.             CALC &sn=%&sn%+1
  20.       }
  21. _END
  22. _SUB ccc *
  23.       //MESS aaa
  24.       ENVI @&LABE%&sn%=%1
  25. _END
复制代码
取消注释MESS aaa就可以给labe设置这个有办法解决吗

点评

你这个实际先执行了CALL set了,逻辑不对了吧。 改成:  详情 回复 发表于 2023-5-27 23:34
回复

使用道具 举报

18586#
发表于 2023-5-27 23:34:25 | 只看该作者
泮安宁 发表于 2023-5-27 21:04
为什么开启多线程给labe设置文字就不行了呢
取消注释MESS aaa就可以给labe设置了 ...

你这个实际先执行了CALL set了,逻辑不对了吧。
改成:
  1. CALL @WIN1
  2. _SUB WIN1,W580H330
  3.       ENVI &&n=1
  4.       ENVI &&T=10
  5.       TIME -t:1 T,0,TEAM? LOOP #%&&n%<=5,TEAM CALL * page1| CALC &n=%&n%+1| WAIT 0.9999? CALL set
  6.       //CALL set
  7. _END
  8. _SUB page1 *
  9.       LABE -left -w &LABE%&n%,L10T%&T%W550H60,,,
  10.       CALC &T=%&T%+70
  11. _END
  12. _SUB set
  13.       ENVI$ &NL=0d 0a
  14.       ENVI &a=1111111%&NL%222222222222%&NL%3333333333333333%&NL%44444444444444444%&NL%55555555555555
  15.       ENVI &sn=1
  16.         FORX *NL &a,&&b,
  17.       {*
  18.             THREAD*$ CALL ccc %&&b%
  19.             CALC &sn=%&sn%+1
  20.       }
  21. _END
  22. _SUB ccc *
  23.       //MESS aaa
  24.       ENVI @&LABE%&sn%=%1
  25. _END
复制代码

点评

谢谢可以了,TEAM后的问号啥意思,我看了一下帮助也没找到说明  详情 回复 发表于 2023-5-28 10:29
回复

使用道具 举报

18587#
发表于 2023-5-28 10:29:59 | 只看该作者
红毛樱木 发表于 2023-5-27 23:34
你这个实际先执行了CALL set了,逻辑不对了吧。
改成:

谢谢可以了,TEAM后的问号啥意思,我看了一下帮助也没找到说明

点评

TEAM[^#~+-@$%*?/\;,."'  详情 回复 发表于 2023-5-29 14:41
回复

使用道具 举报

18588#
发表于 2023-5-29 14:41:56 | 只看该作者
泮安宁 发表于 2023-5-28 10:29
谢谢可以了,TEAM后的问号啥意思,我看了一下帮助也没找到说明

TEAM[^#~+-@$%*?/\;,."'<]

^#~+-为|的替代定界词。 <为反向
------------------------
这里的?是|的替代定界词。
------------------------
也可以
※TEAM 嵌套: 最外层用 | 分断。里面一层用 || 分断。再里面一层用 ||| 分断。。。
TEAM LOOP #%&&n%<=5,TEAM CALL * page1|| CALC &n=%&n%+1|| WAIT 0.9999| CALL set
-------------------------

点评

明白了,我一直都是用的|嵌套的那种方式  详情 回复 发表于 2023-5-29 17:26
回复

使用道具 举报

18589#
发表于 2023-5-29 17:26:09 | 只看该作者

明白了,我一直都是用的|嵌套的那种方式
回复

使用道具 举报

18590#
发表于 2023-6-4 16:55:29 | 只看该作者
EXEC的管道模式怎么用
EXEC|  !a.exe  | !=b.exe > c.txt
可以把b.exe的输出保存到文件,怎么能直接保存到变量呢

点评

※EXEC*[[数字^$]|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。  详情 回复 发表于 2023-6-4 20:19
回复

使用道具 举报

18591#
发表于 2023-6-4 20:19:02 | 只看该作者
泮安宁 发表于 2023-6-4 16:55
EXEC的管道模式怎么用
EXEC|  !a.exe  | !=b.exe > c.txt
可以把b.exe的输出保存到文件,怎么能直接保存 ...

※EXEC*[[数字^$]|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。

点评

┃ │ │EXEC| =!ipconfig > ip.txt ┃ │ │EXEC| =*ipconfig | =%Myname% TEAM READ --,**,V|| MESS. [%%V%%] //先ENVI^ EnviMode=1 ┃ │ │EXEC| !cmd  详情 回复 发表于 2024-5-21 19:35
不行的,我试过了 EXEC*| !a.exe | &a=!b.exe 这样不行,是写错了还是不支持  详情 回复 发表于 2023-6-4 21:09
回复

使用道具 举报

18592#
发表于 2023-6-4 21:09:22 | 只看该作者
本帖最后由 泮安宁 于 2023-6-4 21:31 编辑
红毛樱木 发表于 2023-6-4 20:19
※EXEC*[[数字^$]|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。

不行的,我试过了
EXEC*|  !a.exe  | &a=!b.exe
这样不行,是写错了还是不支持
Tutorial (jqlang.github.io)上面一个例子
curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5" | jq "."

点评

你这是啥写法,批处理么。。。那么多|和! 也没有EXEC*|的写法  详情 回复 发表于 2023-6-5 18:52
谁说不行? exec*| -hide a=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5" | jq "." [attachimg]527594[/attachimg] jq.exe有3.36m,用PECMD命令也能实现啊,何必呢?  详情 回复 发表于 2023-6-4 22:24
回复

使用道具 举报

18593#
发表于 2023-6-4 22:24:58 | 只看该作者
泮安宁 发表于 2023-6-4 21:09
不行的,我试过了
EXEC*|  !a.exe  | &a=!b.exe
这样不行,是写错了还是不支持


谁说不行?

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






jq.exe有3.36m,用PECMD命令也能实现啊,何必呢?

set^ EnviMode=1
set^ ForceLocal=1
exec* -hide b=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5"
read -*,*r,b,b
mess. [%b%]



点评

b=*curl 这里的*好像无意义吧?  详情 回复 发表于 2023-6-5 18:51
咱们两个写的不一样啊,所以说是我写错了啊,变量放错了位置 谢谢指点  详情 回复 发表于 2023-6-4 22:50
回复

使用道具 举报

18594#
发表于 2023-6-4 22:50:51 | 只看该作者
489432757 发表于 2023-6-4 22:24
谁说不行?

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

咱们两个写的不一样啊,所以说是我写错了啊,变量放错了位置
谢谢指点
回复

使用道具 举报

18595#
发表于 2023-6-5 17:28:03 | 只看该作者
6
回复

使用道具 举报

18596#
发表于 2023-6-5 17:28:16 | 只看该作者
6
回复

使用道具 举报

18597#
发表于 2023-6-5 17:28:38 | 只看该作者
6
回复

使用道具 举报

18598#
发表于 2023-6-5 18:51:54 | 只看该作者
489432757 发表于 2023-6-4 22:24
谁说不行?

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

b=*curl
这里的*好像无意义吧?

点评

-hide 隐藏 jq.exe * 隐藏 curl.exe 只运行一个控制台程序无所谓 -hide 还是 *  详情 回复 发表于 2023-6-5 19:53
回复

使用道具 举报

18599#
发表于 2023-6-5 18:52:44 | 只看该作者
泮安宁 发表于 2023-6-4 21:09
不行的,我试过了
EXEC*|  !a.exe  | &a=!b.exe
这样不行,是写错了还是不支持

你这是啥写法,批处理么。。。那么多|和!
也没有EXEC*|的写法
回复

使用道具 举报

18600#
发表于 2023-6-5 19:53:41 | 只看该作者
红毛樱木 发表于 2023-6-5 18:51
b=*curl
这里的*好像无意义吧?

-hide 隐藏 jq.exe
* 隐藏 curl.exe
只运行一个控制台程序无所谓 -hide 还是 *

点评

一般这样子写 EXEC* -wait -hide b=curl xxxxxxxxxxxxxxx  详情 回复 发表于 2023-6-5 20:05
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-24 03:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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