无忧启动论坛

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

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

    [复制链接]
18571#
发表于 2023-5-18 10:13:04 | 只看该作者
回复

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

pecmd.exe进程中的变量
回复

使用道具 举报

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

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

使用道具 举报

18576#
发表于 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);
回复

使用道具 举报

18577#
发表于 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]]          //同步发送消息
回复

使用道具 举报

18578#
发表于 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键

回复

使用道具 举报

18579#
发表于 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
复制代码
回复

使用道具 举报

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

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

使用道具 举报

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

谢谢,可以了
回复

使用道具 举报

18582#
发表于 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
复制代码


回复

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

谢谢红毛
回复

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

好的
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

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

点评

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-27 23:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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