|
PECMD2012.1.70.1-120723_win32.多窗口多线程孵化版-20.sfx.zip 【支持自动化操作】
PECMD2012.1.70.1-120723_win32.多窗口多线程孵化版-20.sfx.zip
支持自动化操作(直接操作另外一个进程:点按钮,点菜单,填表等)
│FIND --pid 变量名,程序名 //查询
│FIND [--sub][--forpid:PID|--fortid:TID] --wid*@[父窗口ID] 变量名,窗口标题//查询*为只前部匹配
│FIND [--sub][--forpid:PID|--fortid:TID] --wid#父窗口ID 变量名,控件ID //查询控件的窗口ID
│FIND --menu 变量名,窗口ID //查询窗口的MENU标识
│FIND --menu#0 变量名,MENU标识 //查询MENU的子MENU标识
│FIND --menu#序号 变量名,MENU标识 //查询指定序号子MENU信息 序号>=1
┃※--wid @为全部: 一行一个。序号 窗口ID 控件ID 父窗口ID 线程ID 进程ID 类型 标题。以TAB间隔
┃※--menu#序号: 序号 MENU标识 控件ID 文本。以TAB间隔。序号为空时返回全部,多行。
按字节填充内存对象
ENVI$# PE变量名= 。。。
ENVI%# PE变量名= 。。。
申请一段内存:
ENVI$# PE变量名= *1M # //1M 字节,未初始化
ENVI$# PE变量名= *1M 0 //1M 字节,初始化为0
ENVI$# PE变量名= *1M 30 //1M 字节,初始化为0x30
申请一段内存:
ENVI$ PE变量名= *1M # //1M 宽字符,未初始化 //2M字节
ENVI$ PE变量名= *1M 0 //1M 宽字符,初始化为0x0000
ENVI$ PE变量名= *1M 30 //1M 宽字符,初始化为0x0030
│■ENVI @@POSTMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]] //异步发送消息
│■ENVI @@SENDMSG=[:变量名;]窗口号;消息号[;参数wPrm[;参数lPrm]] //同步发送消息
│■适用于_SUB窗口和控件。消息号见:WM_消息.WCS,可以IMPORT . 变量名返回结果(含义因消息而定)
│■消息号以#开头为PECMD应用自定义消息1-N。wPrm lPrm参数名, 参数名可以被引用。等号后的_表示下
│ 半部响应模式,在系统响应之后响应【对衍生消息会以相反的顺序响应】。 上面;可以用逗号。
│ 消息参数可以是数字,@PE变量名(ENVI$# 填充非字符串对象),$字符串(只SENDMSG)。
┃ENVI @@POS=窗口ID:左:上:宽:高:层级:透明度:前置:激活
┃│前置1为前置,激活1为激活
┃★ ENVI @@Enable=窗口ID:数值",0为禁用状态;1为可用状态(不响应)。#用于子线程
┃★ ENVI @@Visable=窗口ID:数值",设置可见状态;0为不可见,1为可见。* 为第2种方案
自动脚本支持函数.WCS:(包内有)
//2个工具
ENVI &&ETOOL=T:\PE_RESEDIT\ResEdit.ntr //编辑工具
ENVI &&PTOOL=T:\PE_RESEDIT\pack.dat //压缩工具
SET ::WM_LBUTTONDOWN =0x0201
SET ::WM_LBUTTONUP =0x0202
SET ::WM_COMMAND=0x0111
SET ::BN_CLICKED=0
SET ::WM_SETTEXT =0x000C
SET ::WM_GETTEXT =0x000D
// ENVI &&SubPid=
// EXEC --pid:&SubPid --exe:%&ETOOL% ResEdit %&TMP_OUT1% //编辑
// ENVI &&&Clipboard?=&&OLD //备份剪切板
// ENVI &&&Clipboard=%&OLD% //恢复剪切板
//等待%&SubPid%进程的窗口,最多10秒
//WAIT_FIND_WIND 窗口标题
_SUB WAIT_FIND_WIND
TEAM ENVI &&WID=0| CALC #&&I=10000 / 20| ENVI &&T=%*
LOOP #%&I% > 0, TEAM WAIT 50| FIND --forpid:%&SubPid% --wid &WID,%&T%| CALC #&I=%&I% -1| IFEX $ %&WID% > 0, ENVI &I=0
WAIT 20
_END
// CALL WAIT_FIND_WIND Resource Hacker - %&TMPF%
//函数: SetAcative 窗口ID
_SUB SetAcative
ENVI @@POS=%1:::::::1:1 //激活
_END
//SetWindowText 控件的窗口ID 文本名称
_SUB SetWindowText
ENVI @@POS=%1:::::::1:1 //激活
ENVI @@SENDMSG=%1;%WM_SETTEXT%;0;@%2
_END
// SetWindowText %&EDIT1% &V1
//函数: RUNMENU
//参数: 窗口ID 序号1 [序号2] [序号3]
_SUB RUNMENU
ENVI &&WID1=%1
ENVI &&I1=%2
ENVI &&I2=%3
ENVI &&I3=%4
FIND --menu &&MENUID,%&WID1%
FIND --menu#%&I1% &&v,%&MENUID%
MSTR* &&MID=<2>%&v%
MSTR* &&IDD=<3>%&v%
//CALL LISTMENU %&ID4% &M
FIND $ = %&I2%,! FIND --menu#%&I2% &v,%&MID%
FIND $ = %&I2%,! MSTR* &&MID=<2>%&v%
FIND $ = %&I2%,! MSTR* &&IDD=<3>%&v%
//ENVI &M=%&v%
FIND $ = %&I3%,! FIND --menu#%&I3% &v,%&MID%
FIND $ = %&I3%,! MSTR* &&IDD=<3>%&v%
ENVI @@POS=%&WID1%:::::::1:1 //激活
CALC #&&wp=%IDD% + %&BN_CLICKED% * 0x10000
//ENVI @@POS=%&WID3%:::::::1:1 //激活
ENVI @@POSTMSG=%&WID1%;%&WM_COMMAND%;%&wp%;0
_END
// CALL RUNMENU %&WID% 1 3 //保存(&S)
// RUBBUTTON 窗口ID 按钮ID
_SUB RUBBUTTON
ENVI &&WID1=%1
ENVI &&BWID=%2
ENVI @@POS=%&WID1%:::::::1:1 //激活
ENVI @@POSTMSG=%&BWID%;%&WM_LBUTTONDOWN%;0;0
WAIT 100
ENVI @@POSTMSG=%&BWID%;%&WM_LBUTTONUP%;0;0
//WAIT 100
//ENVI @@SENDMSG=%&WID1%;%&WM_COMMAND%;%&wp%
_END //RUBBUTTON
// CALL RUBBUTTON %&&WID2% %&&BTWIDOPEN%
[ 本帖最后由 2012abc19701 于 2012-7-24 08:22 编辑 ] |
|