无忧启动论坛

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

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

    [复制链接]
18541#
发表于 2023-5-17 20:13:56 | 只看该作者
红毛樱木 发表于 2023-5-17 19:28
好像这里不能直接引%SwinMain1:LABE1%
但是好像可以直接用ENVI @SwinMain1:LABE1[/backcolo ...

那暂时只能是让子窗口的控件也不重名了
回复

使用道具 举报

18542#
发表于 2023-5-18 08:41:58 | 只看该作者
红毛樱木 发表于 2023-5-9 18:25
%&error%
错误码是多少呀 -------------------------
拔插一下移动磁盘看看呢

%error% 是 1

回复

使用道具 举报

18543#
发表于 2023-5-18 08:52:13 | 只看该作者
泮安宁 发表于 2023-5-17 09:10
MESS怎么才能显示出page1中LABE1的内容,MESS %SwinMain1:LABE1%显示不正确不知是 ...



不同层级之间好像可以使用信息传递来解决这个问题,


  • WIN1
  • _SUB WIN1,W972H448,新窗口1,
  •     SWIN swin1:page1:SwinMain1,L0T0W580H320,,0x180
  •     SWIN swin2:page2:SwinMain2,L600T0W580H320,,0x180
  •     ITEM ITEM1,L280T354W60H30,ITEM1,Team envi @@sendmsg=%&wid%:#1;1;2|mess. %&ret%,
  • _END
  • _SUB page1,W580H320,
  •     Team set-ret &wid=%&__winid%|ENVI @this.MSG=#1::&&wp,&&lp,set-ret &ret=%labe1%
  •     LABE LABE1,L87T61W60H30,LABE1,,
  •     ITEM ITEM1,L93T147W60H30,ITEM1,,
  • _END
  • _SUB page2,W580H320,
  •     LABE LABE1,L87T61W60H30,LABE2,,
  •     ITEM ITEM1,L93T147W60H30,ITEM1,,
  • _END


点评

貌似不行 [attachimg]526405[/attachimg]  详情 回复 发表于 2023-5-18 09:25
回复

使用道具 举报

18544#
发表于 2023-5-18 09:25:50 | 只看该作者
datbik189 发表于 2023-5-18 08:52
不同层级之间好像可以使用信息传递来解决这个问题,

貌似不行

点评

Team set^ envimode=1|set^ forcelocal=1 WIN1 _SUB WIN1,W972H448,新窗口1, SWIN swin1:page1:SwinMain1,L0T0W580H320,,0x180 SWIN swin2:page2:SwinMain2,L600T0W580H320,,0x180 ITEM  详情 回复 发表于 2023-5-18 09:41
回复

使用道具 举报

18545#
发表于 2023-5-18 09:41:50 | 只看该作者




Team set^ envimode=1|set^ forcelocal=1


WIN1
_SUB WIN1,W972H448,新窗口1,
    SWIN swin1:page1:SwinMain1,L0T0W580H320,,0x180
    SWIN swin2:page2:SwinMain2,L600T0W580H320,,0x180
    ITEM ITEM1,L280T354W60H30,ITEM1,Team envi @@sendmsg=%&wid%:#1;1;2|mess. %&ret%,
_END
_SUB page1,W580H320,
    Team set-ret &wid=%&__winid%|ENVI @this.MSG=#1::&&wp,&&lp,set-ret &ret=%labe1%
    LABE LABE1,L87T61W60H30,LABE1,,
    ITEM ITEM1,L93T147W60H30,ITEM1,,
_END
_SUB page2,W580H320,
    LABE LABE1,L87T61W60H30,LABE2,,
    ITEM ITEM1,L93T147W60H30,ITEM1,,
_END

点评

谢谢,可以了,原来要用pe变量  详情 回复 发表于 2023-5-18 10:02
回复

使用道具 举报

18546#
发表于 2023-5-18 10:02:18 | 只看该作者
datbik189 发表于 2023-5-18 09:41
Team set^ envimode=1|set^ forcelocal=1

谢谢,可以了,原来要用pe变量
回复

使用道具 举报

18547#
发表于 2023-5-18 10:13:04 | 只看该作者
回复

使用道具 举报

18548#
发表于 2023-5-18 10:17:11 | 只看该作者
M大的PECMD2012, 都建议:
1. 所有的脚本的头行都是建议加上语句: "Team set^ envimode=1|set^ forcelocal=1";
2. 弄清楚环境变量、PE变量、本级PE变量、全局PE变量的含义,尽量用PE变量。

点评

一直搞不清楚“PE变量”中的“PE”是什么意思  详情 回复 发表于 2023-5-18 20:01
回复

使用道具 举报

18549#
发表于 2023-5-18 20:01:46 | 只看该作者
datbik189 发表于 2023-5-18 10:17
M大的PECMD2012, 都建议:
1. 所有的脚本的头行都是建议加上语句: "Team set^ envimode=1|set^ forcelocal= ...

一直搞不清楚“PE变量”中的“PE”是什么意思

点评

个人理解为局部变量或者私有变量, 退出范围自动销毁.  详情 回复 发表于 2023-5-19 08:05
pecmd.exe进程中的变量  详情 回复 发表于 2023-5-19 00:35
回复

使用道具 举报

18550#
发表于 2023-5-19 00:35:43 来自手机 | 只看该作者
Anson4 发表于 2023-5-18 20:01
一直搞不清楚“PE变量”中的“PE”是什么意思

pecmd.exe进程中的变量
回复

使用道具 举报

18551#
发表于 2023-5-19 08:05:49 | 只看该作者
Anson4 发表于 2023-5-18 20:01
一直搞不清楚“PE变量”中的“PE”是什么意思

个人理解为局部变量或者私有变量, 退出范围自动销毁.
回复

使用道具 举报

18552#
发表于 2023-5-19 19:14:10 | 只看该作者
mdyblog 发表于 2023-4-28 20:23
要么系统本身支持,如XP视觉。
要么自己做,窗口用蒙板。直角扣掉。

M大,如何向一个后台窗口发送组合键,比如向一个隐藏的CMD发送ctrl+c.
网上查到的资料如下,怎么转成PECMD脚本。
正确发送的code:(Alt+A)

PostMessage(hWnd,WM_SYSKEYDOWN,VK_MENU,0);

PostMessage(hWnd,WM_SYSKEYDOWN,0x41,0);

Sleep(50);

PostMessage(hWnd,WM_SYSKEYUP,0x41,0);

PostMessage(hWnd,WM_SYSKEYUP,VK_MENU,0);

点评

ENVI @@POSTMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]] //异步发送消息 ENVI @@SENDMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]] //同步发送消息  详情 回复 发表于 2023-5-20 03:46
回复

使用道具 举报

18553#
发表于 2023-5-20 03:46:10 | 只看该作者
conlin888 发表于 2023-5-19 19:14
M大,如何向一个后台窗口发送组合键,比如向一个隐藏的CMD发送ctrl+c.
网上查到的资料如下,怎么转成PEC ...

ENVI @@POSTMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]]          //异步发送消息
ENVI @@SENDMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]]          //同步发送消息

点评

目前测试以下的代码有效, 但也有一定几率失效: send 0x11_ //按下ctrl键 set @@postmsg=%cmdwid%;0x100;0x43 //按下C键 send 0x11^ //弹起ctrl键  详情 回复 发表于 2023-5-20 09:33
回复

使用道具 举报

18554#
发表于 2023-5-20 09:33:19 | 只看该作者
本帖最后由 conlin888 于 2023-5-20 09:43 编辑
红毛樱木 发表于 2023-5-20 03:46
ENVI @@POSTMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]]          //异步发送消息
ENVI @@SENDM ...

目前测试以下的代码有效,

send 0x11_   //按下ctrl键
set @@postmsg=%cmdwid%;0x100;0x43  //按下C键
wait 10
send 0x11^  //弹起ctrl键

回复

使用道具 举报

18555#
发表于 2023-5-20 18:08:04 | 只看该作者
本帖最后由 泮安宁 于 2023-5-20 18:11 编辑
红毛樱木 发表于 2023-5-5 17:09
SWIN改变大小响应滚动条.wcs
这个估计能满足你
大佬帮忙看一下,滚动条还是不行呀
  1. WIN1
  2. _SUB WIN1,W580H500,新窗口1,
  3.     ^SWIN swinmain:WIN2:-SwinMain,L0T0W560H430,,0x180
  4.     ENVI @SwinMain.ID=?&SWINMAIN_Wid
  5.     ITEM ITEM1,L280T430W60H30,ITEM1,ENVI @@POS=%&SWINMAIN_Wid%::::10000
  6. _END
  7. _SUB WIN2,W560H40
  8.     ^SWIN swin2:page2:-SwinMain2,L120T10W100H100,,0x40
  9.     ^SWIN swin2:page2:-SwinMain2,L120T120W100H100,,0x40
  10.     ^SWIN swin2:page2:-SwinMain2,L120T240W100H100,,0x40
  11.     ^SWIN swin2:page2:-SwinMain2,L120T360W100H100,,0x40
  12.     ^SWIN swin2:page2:-SwinMain2,L120T480W100H100,,0x40
  13. _END
  14. _SUB page2,W100H100,
  15.     ^LABE LABE1,L0T10W50H30,LABE2,,
  16.     ^ITEM ITEM1,L0T50W60H30,ITEM1,
  17. _END
复制代码

点评

你这和实例代码不一样吧。 实例代码里都调用API实现的 CALL $--qd user32.dll,SetScrollInfo,#%SWIN1_Wid%,#%SB_VERT%,*&inf  详情 回复 发表于 2023-5-20 22:22
回复

使用道具 举报

18556#
发表于 2023-5-20 22:22:47 | 只看该作者
泮安宁 发表于 2023-5-20 18:08
大佬帮忙看一下,滚动条还是不行呀

你这和实例代码不一样吧。
实例代码里都调用API实现的
CALL $--qd user32.dll,SetScrollInfo,#%SWIN1_Wid%,#%SB_VERT%,*&inf

点评

请教一下红毛:EDIT控件的内容被自动换行的情况下,用什么办法能检测到一共有几行呢?  详情 回复 发表于 2023-5-21 14:49
谢谢,可以了  详情 回复 发表于 2023-5-20 23:22
回复

使用道具 举报

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

谢谢,可以了
回复

使用道具 举报

18558#
发表于 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
回复

使用道具 举报

18559#
发表于 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
回复

使用道具 举报

18560#
发表于 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
回复

使用道具 举报

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

谢谢红毛
回复

使用道具 举报

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

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

点评

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

使用道具 举报

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

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

点评

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

使用道具 举报

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

好的
回复

使用道具 举报

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

使用道具 举报

18566#
发表于 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
回复

使用道具 举报

18567#
发表于 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
回复

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-24 04:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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