无忧启动论坛

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

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

    [复制链接]
1051#
发表于 2022-3-29 11:44:20 | 显示全部楼层
mdyblog 发表于 2022-3-29 10:30
细细哥的  完整的 USBwin2003.VHD 用MBT-VM测试:

估计R2版2003跟不带R2版还是有区别的。
回复

使用道具 举报

1052#
发表于 2022-3-29 12:26:15 | 显示全部楼层
mdyblog 发表于 2022-3-29 12:09
你那是完整系统吗? 用完整系统测试。 不要用PE测试。

是完整系统,我再装一个R2试试看。
回复

使用道具 举报

1053#
发表于 2022-3-29 13:22:38 | 显示全部楼层
本帖最后由 527104427 于 2022-3-29 13:34 编辑
mdyblog 发表于 2022-3-29 12:09
你那是完整系统吗? 用完整系统测试。 不要用PE测试。


果然,打一下R2补丁就不一样了,这系统真是坑人









回复

使用道具 举报

1054#
发表于 2022-3-29 15:19:56 | 显示全部楼层
mdyblog 发表于 2022-3-29 14:26
你把 没有打补丁的 VM系统打包发到123pan上,我测试下。

https://www.123pan.com/s/NflRVv-ROLSh
上传了一个虚拟机硬盘和一个ISO源文件。

回复

使用道具 举报

1055#
发表于 2022-3-29 19:38:44 | 显示全部楼层
本帖最后由 527104427 于 2022-3-29 19:39 编辑

原版2003的好了。老大再搞搞原版XP吧,此命令返回空:part list floppy ,d

https://www.123pan.com/s/NflRVv-DOLSh






回复

使用道具 举报

1056#
发表于 2022-3-30 00:41:57 | 显示全部楼层
mdyblog 发表于 2022-3-29 22:25
XP 软盘 竟然没有 ClassGUID

回复

使用道具 举报

1057#
发表于 2022-3-30 00:42:54 | 显示全部楼层
泮安宁 发表于 2022-3-30 00:38
M大,用此段代码复制大量文件时,会程序无响应,有办法解决吗

CALL Start 改为 Thread* CALL Start 就行啦
回复

使用道具 举报

1058#
发表于 2022-3-30 11:18:22 | 显示全部楼层

好了
回复

使用道具 举报

1059#
发表于 2022-4-3 12:39:09 | 显示全部楼层
mdyblog 发表于 2022-4-3 00:36
WRIT  *c  *fv  C:\X.TXT,1,&Var
WRIT  *c    C:\X.TXT,$1,%&Var%


请教一下 ,挂载ISO时,下面返回值的含义是什么?可否算出具体挂载到哪个盘符了?

moun-vhd -r %&isofile%,,,&retvhd,&&h
MESS %&h% / [%&retvhd%] / 1111
//0x23C / [-1 -2 ] / 1111

回复

使用道具 举报

1060#
发表于 2022-4-17 11:39:00 | 显示全部楼层
mdyblog 发表于 2022-4-16 23:21
sed -ex -ni r;s;t=?,%b%,,c   //[1][1][1]

-------------------------------------

测试了几天终于得出规律:

*r;s;t=?0:0  //[9 130 251][3][3 4 5] √
*r;s;t=?0    //[9 130 251][3][3 4 5]  √
*r;s;t=?:0   //[9][1][3]                    ×
*r;s;t=?      //[9][1][3]                    ×
*r;s;t=?:1   //[130][1][4]                 ×
*r;s;t=?0:1  //[130 251][2][4 5]       √

r;s;t=?0:0  //[251][3][0] ×
r;s;t=?0    //[251][3][0]  ×
r;s;t=?:0   //[9][1][3]     √
r;s;t=?      //[9][1][3]     √
r;s;t=?:1   //[130][1][4]  √
r;s;t=?0:1  //[251][2][0]  ×

以上实验证明,
查单行用 r;s;t=?        跳过1次,用 r;s;t=?:1
查多行用 *r;s;t=?0    跳过1次,用 *r;s;t=?0:1




点评

*或-many 返回多个位置。 次数一般默认1, 后面知名多个子名则默认0  详情 回复 发表于 2022-4-17 16:49
查多行用 *r;s;t=?0 ---------------- 多行用 -many 上面 * 就是-many的作用。  详情 回复 发表于 2022-4-17 13:04
你说的哪个, 吧完整例子贴出来  详情 回复 发表于 2022-4-17 12:54
回复

使用道具 举报

1061#
发表于 2022-4-17 14:02:03 | 显示全部楼层
本帖最后由 527104427 于 2022-4-18 17:18 编辑
mdyblog 发表于 2022-4-17 12:54
你说的哪个, 把完整例子贴出来。

就是上次提问的啊,把其中的  r;s;t=?0 换成了不同的组合进行测试得出 16641# 的结果。


#code=936T950
set^ EnviMode=1
set^ ForceLocal=1
set$ nl=0d 0a
set$ tab=09

set a=EXEC -hide -wd:"%%&tmpdir%%\" -exe:"%%CurDir%%\part\RC\RC.exe" =rc_exe /l 0x804 /fo version.res "%%CurDir%%\part\version.txt"
set b=EXEC \-hide \-wd:"%%[&]*?tmpdir%%\\" \-exe:"%%[&]*?CurDir%%\\part{\\\a+}*+?\\RC\.exe" =rc_exe /l 0x804 /fo version\.res "%%[&]*?CurDir%%\\part\\version\.txt"

set c=a%nl%b%nl%%tab%%tab%%a%%nl%%a%%nl%%a%%nl%

sed -ex -ni r;s;t=?0,%b%,,c
mess. [%r%][%s%][%t%]   //[251][3][0]







回复

使用道具 举报

1062#
发表于 2022-4-17 20:18:59 | 显示全部楼层
826773297 发表于 2022-4-17 18:47
sed命令有点复杂,写不出来,要是有例子就好了

你搞错了,M大是回复我的。
你应该去研究 systemcpl.dll 怎么调用吧,微软文档看有没有相关API
回复

使用道具 举报

1063#
发表于 2022-4-18 17:10:52 | 显示全部楼层
mdyblog 发表于 2022-4-17 16:49
*或-many 返回多个位置。
次数一般默认1, 后面知名多个子名则默认0

按道理说,下图的那些  行数为0的情况应该是bug吧? 行数应该是5才对啊。


点评

PECMD2012.1.88.05.86Stable-220331F.7z PECMD2012.1.88.05.87Stable-220418C测试.7z ------------------------ [r;s;t=?0]: r[243] s[3] t[5] [r;s;t=?0:1]: r[243] s[2] t[5] [r;s;t=?0:0]: r[243] s[3]  详情 回复 发表于 2022-4-19 20:24
回复

使用道具 举报

1064#
发表于 2022-4-23 11:58:11 | 显示全部楼层
mdyblog 发表于 2022-4-23 10:13
新版\示例\BROWDirX.wcs


这个位置空白,有点奇怪


点评

勤快点。 将 右边2按钮 重新布置下。  详情 回复 发表于 2022-4-23 12:50
我感觉是隐藏了该位置的某些元素造成的  发表于 2022-4-23 12:12
回复

使用道具 举报

1065#
发表于 2022-4-23 12:28:35 | 显示全部楼层
Anson4 发表于 2022-4-23 12:23
请问M大,有什么办法能让MESS消息对话框保持与系统对话框相同的风格(就是按钮在窗口右下角)吗?
要是能 ...

MESS=

点评

指令很有效,感谢5大回复! 在帮助文档中实习和杨描述的,不知道会有什么其他影响没有? [attachimg]500178[/attachimg]  详情 回复 发表于 2022-4-23 12:39
回复

使用道具 举报

1066#
发表于 2022-4-23 12:45:53 | 显示全部楼层
Anson4 发表于 2022-4-23 12:39
指令很有效,感谢5大回复!
在帮助文档中实习和杨描述的,不知道会有什么其他影响没有?

我一直以来都 是这么用的,没发现啥问题

点评

明白了,谢谢!  发表于 2022-4-23 13:01
回复

使用道具 举报

1067#
发表于 2022-4-23 13:24:00 | 显示全部楼层
mdyblog 发表于 2022-4-23 13:16
可以自己重新布局下。

m大不如举个例子吧,我看他跟我一样,是个编程小白,啥也不懂的

我就是随口一说,m大不必在意




点评

CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE% ///chx1=1040 以只读方式打开(&R) 下面 CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%IDOK% 这样会的获得 打开按钮的 句柄w 可以移动 ENVI @  详情 回复 发表于 2022-4-23 14:00
我确实是没看明白^-^  发表于 2022-4-23 13:28
回复

使用道具 举报

1068#
发表于 2022-4-23 18:45:16 | 显示全部楼层
本帖最后由 527104427 于 2022-4-23 21:01 编辑
Anson4 发表于 2022-4-23 12:10
M大辛苦了,感谢更新!
我测试了一下,想提几点建议,M大看看能不能优化一下:
1. 增加调整窗口大小的 ...

调整了下布局,默认弹出到屏幕中间,你看看这样满意吗



还有,强迫症受不了这个白边,顺便也处理了一下





//authored by mdyblog@163.com
@IFEX %&CurFile%.LOG, LOGS * %&CurFile%.LOG
@TEAM ENVI^ EnviMode=1| ENVI^ ForceLocal=1
//SET &RetBrow=0
//SET< RetBrow=\XXX
//MESS. RetBrow[%RetBrow%]

SET$ &NL=0d 0a
SET$ &NLd=0d
SET$ &NLa=0a
SET$ TAB=09

IFEX #%&bX64%=3, SET &PTR_LEN=8!  SET &PTR_LEN=4
IFEX #%&bX64%=3, SET &SetWindowLongPtrW=SetWindowLongPtrW! SET &SetWindowLongPtrW=SetWindowLongW
SET &cmb1=1136
SET &cmb13=1148
SET &stc2=1089
SET &stc3=1090
SET &chx1=1040
SET &IDOK=1
SET &IDCANCEL=2
CALC -base=16 #&&CDN_INITDONE=0 - 601 - 0x0000
CALC -base=16 #&&CDM_GETFOLDERPATH=0x0400 + 100 + 0x0002

SET &SW_HIDE=0x0
CALC #&&WM_NOTIFY=0x004E
CALC #&&WM_COMMAND=0x0111
SET &WM_INITDIALOG=0x0110
CALC -base=16 #&&GWLP_WNDPROC=-4

SET &BorwOriWndProc=0
SET &RetBrow.flg=0
SET &RetBrow=

ENVI^ WndProc1,&&WndProc1Adr
ENVI^ WndProc2,&&WndProc2Adr


_SUB OnWndProc1  //hdlg uiMsg wParm lParam
    @TEAM SET &hdlg=%~1| SET &uiMsg=%~2| SET &wParam=%~3| SET &lParam=%~4
        IFEX #[ %uiMsg%=%WM_INITDIALOG% & %hdlg%<>0 & %RetBrow.flg%=0 ],
        {        SET$ &wcsClassName1=*2048 0
                SET$ &wcsClassName2=*2048 0
        CALL $--ret:&&hParent user32.dll,GetParent,#%hdlg%
        CALL $--ret:&&n1 --qd user32.dll,GetClassNameW,#%hParent%,*wcsClassName1,#2047
        CALL $--ret:&&n2 --qd user32.dll,GetClassNameW,#%hdlg%,*wcsClassName2,#2047
                FIND $%wcsClassName1% = %wcsClassName2%,
        {        SET RetBrow.flg=0x1
            ^CALL $--ret:&BorwOriWndProc --qd user32.dll,%SetWindowLongPtrW%,#%hParent%,#%GWLP_WNDPROC%,#%WndProc2Adr%
                }
        }
    //HWND hwndFrom;UINT_PTR idFrom;UINT code;
        IFEX #%uiMsg%=%WM_NOTIFY%,
    {        ENVI?ints %lParam%=&&pnmh_code:(%PTR_LEN% * 2)    //LPNMHDR-->code
                IFEX #%CDN_INITDONE%=%pnmh_code%,
                {        CALL $--ret:&hParent user32.dll,GetParent,#%hdlg%
            CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%cmb1%
            CALL $--ret:&&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //cmb1=1136 文件类型
            CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%cmb13%
            CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //cmb13=1148 文件名
            CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%stc3%
            CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //stc3=1090 文件名标签
            CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%stc2%
            CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //stc2=1089 文件类型标签
            CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%chx1%
            CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  ///chx1=1040 以只读方式打开(&R)

           //以下重新布局

            CALL $--ret:&&w1 user32.dll,GetDlgItem,#%hParent%,#%IDCANCEL%
            ENVI @@POS=?%&&w1%:&&left1::&&wide1:&&high1

            CALL $--ret:&&w2 user32.dll,GetDlgItem,#%hParent%,#1120   //listbox
            ENVI @@POS=?%&&w2%::&&top2::&&high2

            ENVI @@POS=%&&w1%:(%&&left1%-20):(%&&top2%+%&&high2%+20)  //移动“取消按钮”

            CALL $--ret:&&w3 user32.dll,GetDlgItem,#%hParent%,#%IDOK%
            ENVI @@POS=%&&w3%:(%&&left1%-%&&wide1%-20-10):(%&&top2%+%&&high2%+20)  //移动“确定按钮”

            SCRN -win &&wide4,&&high4
            ENVI @@POS=?%hParent%:::&&wide5:&&high5
            ENVI @@POS=%hParent%:((%&&wide4%-%&&wide5%)/2):((%&&high4%-%&&high5%)/2)::(%&&top2%+%&&high2%+20+%&&high1%+45)   //调整主窗口高度、坐标

            CALL $--ret:&&w6 user32.dll,GetDlgItem,#%hParent%,#1091   //“查找范围”标签
            ENVI @@POS=?%&&w6%:&&left6::&&wide6:&&high6
            ENVI @@POS=%&&w6%:(%&&left6%+14)::(%&&wide6%-14):(%&&high6%-2)   //调整“查找范围”标签宽、高、坐标

           //以上重新布局

                }
        }
        EXIT= 0
_END

_SUB OnWndProc2  //hWnd uiMsg wParm lParam
    @TEAM SET &hWnd=%~1| SET &uiMsg=%~2| SET &wParam=%~3| SET &lParam=%~4
        IFEX #[ %uiMsg%=%WM_COMMAND% & %wParam%=%IDOK% ],
    {
        SET RetBrow.flg=0x00
        SET$ RetBrow=*8192 0 0
        CALL $--ret:&&w user32.dll,GetDlgItem,#%hwnd%,#%cmb13%
        SET$ &&V=*8192 0
        CALL $--qd --ret:&&ok user32.dll,GetWindowTextW,#%w%,*&V,#8191
        ENVI @@SENDMSG=%hwnd%:%CDM_GETFOLDERPATH%;8191;@RetBrow
        SED -ex &&i=?1,[\*\?],,&V
        IFEX [ '%RetBrow%'<>'' && '%V%'<>'' & #%i%<1 &  %RetBrow%\%&&V% ], SET RetBrow=%RetBrow%\%&&V%
        CALL $--qd --ret:&&ret user32.dll,%SetWindowLongPtrW%,#%hwnd%,#%GWLP_WNDPROC%,#%BorwOriWndProc%
        ENVI @@SENDMSG=%hwnd%:%uiMsg%;%IDCANCEL%;%lParam%
        EXIT= 0
        EXIT _SUB
    }
        IFEX #[ %uiMsg%=%WM_COMMAND% & %wParam%=%IDCANCEL% ],
    {
        SET RetBrow.flg=0x00
        CALL $--qd --ret:&&ret user32.dll,%SetWindowLongPtrW%,#%hwnd%,#%GWLP_WNDPROC%,#%BorwOriWndProc%
        ENVI @@SENDMSG=%hwnd%:%uiMsg%;%IDCANCEL%;%lParam%
        //EXIT= %IDCANCEL%
        EXIT _SUB
    }
    CALL $#,%BorwOriWndProc%,#%1,#%2,#%3,#%4
        EXIT= 0
_END

//带上 ;RetBrow.flg, 自动初始化标志RetBrow.flg
//只选择目录 注意带引号  注意 *..*   0x80000
BROW RetBrow;RetBrow.flg,"%WinDir%\*..*",请选择一个文件夹一保存驱动程序,,0x81000,%WndProc1Adr%
MESS. [%RetBrow%]


//选择文件和目录  注意带引号 0x80000
BROW RetBrow;RetBrow.flg,"%WinDir%\*.*",请选择一个文件夹或文件,,0x81000,%WndProc1Adr%
MESS. [%RetBrow%]




点评

5大,我发现用 0x881000,就可以调整窗口大小,而且下次打开会在上次的位置以上次的大小显示。  详情 回复 发表于 2022-4-24 07:14
挺好的!!!!  详情 回复 发表于 2022-4-23 20:24
回复

使用道具 举报

1069#
发表于 2022-4-23 22:02:36 | 显示全部楼层
mdyblog 发表于 2022-4-23 20:24
挺好的!!!!


哈哈,原来是这么玩的,终于把文件名编辑框搞出来了!






//authored by mdyblog@163.com
@IFEX %&CurFile%.LOG, LOGS * %&CurFile%.LOG
@TEAM ENVI^ EnviMode=1| ENVI^ ForceLocal=1
//SET &RetBrow=0
//SET< RetBrow=\XXX
//MESS. RetBrow[%RetBrow%]

SET$ &NL=0d 0a
SET$ &NLd=0d
SET$ &NLa=0a
SET$ TAB=09

IFEX #%&bX64%=3, SET &PTR_LEN=8!  SET &PTR_LEN=4
IFEX #%&bX64%=3, SET &SetWindowLongPtrW=SetWindowLongPtrW! SET &SetWindowLongPtrW=SetWindowLongW
SET &cmb1=1136
SET &cmb13=1148
SET &stc2=1089
SET &stc3=1090
SET &chx1=1040
SET &IDOK=1
SET &IDCANCEL=2
CALC -base=16 #&&CDN_INITDONE=0 - 601 - 0x0000
CALC -base=16 #&&CDM_GETFOLDERPATH=0x0400 + 100 + 0x0002

SET &SW_HIDE=0x0
CALC #&&WM_NOTIFY=0x004E
CALC #&&WM_COMMAND=0x0111
SET &WM_INITDIALOG=0x0110
CALC -base=16 #&&GWLP_WNDPROC=-4

SET &BorwOriWndProc=0
SET &RetBrow.flg=0
SET &RetBrow=

ENVI^ WndProc1,&&WndProc1Adr
ENVI^ WndProc2,&&WndProc2Adr


_SUB OnWndProc1  //hdlg uiMsg wParm lParam
    @TEAM SET &hdlg=%~1| SET &uiMsg=%~2| SET &wParam=%~3| SET &lParam=%~4
        IFEX #[ %uiMsg%=%WM_INITDIALOG% & %hdlg%<>0 & %RetBrow.flg%=0 ],
        {        SET$ &wcsClassName1=*2048 0
                SET$ &wcsClassName2=*2048 0
        CALL $--ret:&&hParent user32.dll,GetParent,#%hdlg%
        CALL $--ret:&&n1 --qd user32.dll,GetClassNameW,#%hParent%,*wcsClassName1,#2047
        CALL $--ret:&&n2 --qd user32.dll,GetClassNameW,#%hdlg%,*wcsClassName2,#2047
                FIND $%wcsClassName1% = %wcsClassName2%,
        {        SET RetBrow.flg=0x1
            ^CALL $--ret:&BorwOriWndProc --qd user32.dll,%SetWindowLongPtrW%,#%hParent%,#%GWLP_WNDPROC%,#%WndProc2Adr%
                }
        }
    //HWND hwndFrom;UINT_PTR idFrom;UINT code;
        IFEX #%uiMsg%=%WM_NOTIFY%,
    {        ENVI?ints %lParam%=&&pnmh_code:(%PTR_LEN% * 2)    //LPNMHDR-->code
                IFEX #%CDN_INITDONE%=%pnmh_code%,
                {        CALL $--ret:&hParent user32.dll,GetParent,#%hdlg%
            //CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%cmb1%
            //CALL $--ret:&&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //cmb1=1136 文件类型
            //CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%cmb13%
            //CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //cmb13=1148 文件名
            //CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%stc3%
            //CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //stc3=1090 文件名标签
            //CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%stc2%
            //CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  //stc2=1089 文件类型标签
            CALL $--ret:&w user32.dll,GetDlgItem,#%hParent%,#%chx1%
            CALL $--ret:&ret user32.dll,ShowWindow,#%w%,#%SW_HIDE%  ///chx1=1040 以只读方式打开(&R)

           //以下重新布局

            CALL $--ret:&&w1 user32.dll,GetDlgItem,#%hParent%,#%IDCANCEL%
            ENVI @@POS=?%&&w1%:@:&&top1::&&high1

            SCRN -win &&wide2,&&high2
            ENVI @@POS=?%hParent%:::&&wide3:&&high3
            ENVI @@POS=%hParent%:((%&&wide2%-%&&wide3%)/2):((%&&high2%-%&&high3%)/2):@:(%&&top1%+%&&high1%+15)   //调整主窗口高度、坐标

            CALL $--ret:&&w4 user32.dll,GetDlgItem,#%hParent%,#1091   //“查找范围”标签
            ENVI @@POS=?%&&w4%:&&left4:&&top4:&&wide4:&&high4
            ENVI @@POS=%&&w4%:(%&&left4%+14)::(%&&wide4%-14):(%&&high4%-2)   //调整“查找范围”标签宽、高、坐标

            CALL $--ret:&&w5 user32.dll,GetDlgItem,#%hParent%,#%stc2%   //“文件类型”标签
            ENVI @@POS=?%&&w5%:&&left5:&&top5:&&wide5:&&high5
            ENVI @@POS=%&&w5%:(%&&left5%+15)::(%&&wide5%-15):(%&&high5%-2)   //调整“文件类型”标签宽、高、坐标

            CALL $--ret:&&w6 user32.dll,GetDlgItem,#%hParent%,#%stc3%   //“文件名”标签
            ENVI @@POS=?%&&w6%:&&left6:&&top6:&&wide6:&&high6
            ENVI @@POS=%&&w6%:(%&&left6%+27)::(%&&wide6%-27):(%&&high6%-2)   //调整“文件名”标签宽、高、坐标

           //以上重新布局

                }
        }
        EXIT= 0
_END

_SUB OnWndProc2  //hWnd uiMsg wParm lParam
    @TEAM SET &hWnd=%~1| SET &uiMsg=%~2| SET &wParam=%~3| SET &lParam=%~4
        IFEX #[ %uiMsg%=%WM_COMMAND% & %wParam%=%IDOK% ],
    {
        SET RetBrow.flg=0x00
        SET$ RetBrow=*8192 0 0
        CALL $--ret:&&w user32.dll,GetDlgItem,#%hwnd%,#%cmb13%
        SET$ &&V=*8192 0
        CALL $--qd --ret:&&ok user32.dll,GetWindowTextW,#%w%,*&V,#8191
        ENVI @@SENDMSG=%hwnd%:%CDM_GETFOLDERPATH%;8191;@RetBrow
        SED -ex &&i=?1,[\*\?],,&V
        IFEX [ '%RetBrow%'<>'' && '%V%'<>'' & #%i%<1 &  %RetBrow%\%&&V% ], SET RetBrow=%RetBrow%\%&&V%
        CALL $--qd --ret:&&ret user32.dll,%SetWindowLongPtrW%,#%hwnd%,#%GWLP_WNDPROC%,#%BorwOriWndProc%
        ENVI @@SENDMSG=%hwnd%:%uiMsg%;%IDCANCEL%;%lParam%
        EXIT= 0
        EXIT _SUB
    }
        IFEX #[ %uiMsg%=%WM_COMMAND% & %wParam%=%IDCANCEL% ],
    {
        SET RetBrow.flg=0x00
        CALL $--qd --ret:&&ret user32.dll,%SetWindowLongPtrW%,#%hwnd%,#%GWLP_WNDPROC%,#%BorwOriWndProc%
        ENVI @@SENDMSG=%hwnd%:%uiMsg%;%IDCANCEL%;%lParam%
        //EXIT= %IDCANCEL%
        EXIT _SUB
    }
    CALL $#,%BorwOriWndProc%,#%1,#%2,#%3,#%4
        EXIT= 0
_END

//带上 ;RetBrow.flg, 自动初始化标志RetBrow.flg
//只选择目录 注意带引号  注意 *..*   0x80000
BROW RetBrow;RetBrow.flg,"%WinDir%\*..*",请选择一个文件夹一保存驱动程序,,0x81000,%WndProc1Adr%
MESS. [%RetBrow%]


//选择文件和目录  注意带引号 0x80000
BROW RetBrow;RetBrow.flg,"%WinDir%\*.*",请选择一个文件夹或文件,,0x81000,%WndProc1Adr%
MESS. [%RetBrow%]


点评

第二个函数最后,返回真是的动态结果,改为 CALL $--ret:&&r #,%BorwOriWndProc%,#%1,#%2,#%3,#%4 EXIT= %&r% 加了 类型控制变量RetBrow.tp, 0:仅目录 1:支持文件 3:支持文件和类型选择 效果  详情 回复 发表于 2022-4-24 09:52
可是,此时 文件名编辑框 和 文件类型选择框 好像不起作用。  详情 回复 发表于 2022-4-24 02:39
好!!!!!!  详情 回复 发表于 2022-4-24 02:17
我正想着怎么获取那个 listbox 的参数,将它的高度宽度增大,真是想什么来什么,感谢5大!  详情 回复 发表于 2022-4-24 00:52
哦吼,看的我一脸懵逼,这是干啥呢,这是赤裸裸的装B呀,先点赞再学习。  详情 回复 发表于 2022-4-24 00:09
回复

使用道具 举报

1070#
发表于 2022-4-27 18:33:57 | 显示全部楼层
mdyblog 发表于 2022-4-27 15:16
新版可以滚动列表。 用的 谍(SWIN)中谍(SWIN)

暴力测试100WIFI,效率不错。

这个滚动条似乎不能用鼠标中键滚动

点评

PECMD2012.1.88.05.87Stable-220425E测试.7z  详情 回复 发表于 2022-4-28 10:56
对,我也发现了  详情 回复 发表于 2022-4-27 18:58
回复

使用道具 举报

1071#
发表于 2022-4-29 14:19:01 | 显示全部楼层
826773297 发表于 2022-4-29 13:29
CALL $--qd# user32.dll,SystemParametersInfoW,159,1,0,1

m大请教一下这个api的用法,设置dpi为150%缩 ...

这个要在pe里用才行吗?我在正常系统试了一下没有效果(win7x64),kill explorer或注销也不行

点评

我印象中这个功能是从Win10 14393开始才支持的,具体小版本号可能记得不准。  详情 回复 发表于 2022-4-29 14:29
回复

使用道具 举报

1072#
发表于 2022-5-7 18:03:02 | 显示全部楼层

如果是error能判断的话,那代码可以简化一下了:

ENVI &&WM_DEVICECHANGE                 =0x0219

_SUB WIN1,W405H254,新窗口1,
    ENVI @this.Visable=1
    ENVI @this.MSG=_%&WM_DEVICECHANGE%::&&wp,&&lp,WIN2
    LABE LABE1,L20T82W355H30,LABE1,,
    WIN2
_END

WIN1

_SUB WIN2
    loop #1=1,
    {*
        PCIP ? ,,,,0?SNAME
        ifex $%error%=0, exit
        wait 500
    }
    ENVI @LABE1=%SNAME%
_END



点评

测试, 卸载VHD时, 竟然 要 5000多ms。  详情 回复 发表于 2022-5-9 10:46
感谢,昨天修一台机器忘记测试了,今天试试  详情 回复 发表于 2022-5-8 09:20
回复

使用道具 举报

1073#
发表于 2022-5-9 12:43:36 | 显示全部楼层
mdyblog 发表于 2022-5-9 10:46
测试, 卸载VHD时, 竟然 会重试 几万次,耗 5000多ms。

哇,看来不能这么玩!

点评

上面 用TIME 延时500ms, 实际测试都是PCIP立即完成。  详情 回复 发表于 2022-5-9 17:37
回复

使用道具 举报

1074#
发表于 2022-5-9 23:27:20 | 显示全部楼层
泮安宁 发表于 2022-5-9 22:57
请教m大,有没有返回指定字符串第n个字符的命令,如字符串123456第二个字符为2
我在帮助中没找到

set   a=123456
mstr * b=2,1,a
mess. [%b%]

点评

为什么你写的不用%引用变量呢,和这个 set a=123456 mstr b=2,1,%a% mess. [%b%] 有什么区别呢  详情 回复 发表于 2022-5-9 23:55
好的,谢谢5大  详情 回复 发表于 2022-5-9 23:42
回复

使用道具 举报

1075#
发表于 2022-5-12 10:52:31 | 显示全部楼层
Anson4 发表于 2022-5-12 10:45
好啊,辛苦了!

另外,请教一下,RADI 和 CHEK 控件如何设置背景透明?

红毛教我的:
ENVI @PRT2BAK.trans=1*3
回复

使用道具 举报

1076#
发表于 2022-5-12 17:54:10 | 显示全部楼层
Anson4 发表于 2022-5-12 17:36
然后就是下图的效果,没有了我需要的背景色。
而且,依然会闪现控件的背景色。




点评

不同系统表现不一样,我这里也是偶尔会闪一下,但是闪的概率很低  详情 回复 发表于 2022-5-12 17:55
回复

使用道具 举报

1077#
发表于 2022-5-14 20:17:55 | 显示全部楼层
826773297 发表于 2022-5-14 19:39
PECMD如何从指定的行继续向下查找一个匹配的行号
ENVI$ &NL=0D 0A
ENVI 内容=

#code=936T950
ENVI^ EnviMode=1
ENVI^ ForceLocal=1

set$ nl=0D 0A
set 内容=
\[AAAA]%&NL%
\SDFDSFD%&NL%
\[BBBBBBB]%&NL%
\SDFSDF%&NL%
\323423434%&NL%
\[AAAA]%&NL%
\SDFSDFDSFDS%&NL%
\[AAAA]


lpos* * ,a=[BBBBBBB],1,内容
ifex $%a%>0,
{*
        read -*,%a%+0,b,内容
        lpos* * ,c=%nl%[,1,b
        ifex $%c%>0,
        {*
                read -*,1+%c%,d,b
                mess. ****%d%****
        }
}

点评

好的,感谢  详情 回复 发表于 2022-5-14 20:25
回复

使用道具 举报

1078#
发表于 2022-5-14 20:35:00 | 显示全部楼层
本帖最后由 527104427 于 2022-5-14 20:36 编辑


还有更简单的,一句SED搞定:

#code=936T950
ENVI^ EnviMode=1
ENVI^ ForceLocal=1

set$ nl=0D 0A
set 内容=
\[AAAA]%NL%
\SDFDSFD%NL%
\[BBBBBBB]%NL%
\SDFSDF%NL%
\323423434%NL%
\[AAAA]%NL%
\SDFSDFDSFDS%NL%
\[AAAA]

sed -ex a=?,\[BBBBBBB\]%nl%*?{\a+}*?%nl%*?{\a+}*?%nl%*?\[,b,内容

mess. %b%





点评

大致看了一下,sed命令对已知行数有效,如果不是固定的行数应该会出错  详情 回复 发表于 2022-5-14 20:43
还有这种操作,感谢分享  详情 回复 发表于 2022-5-14 20:40
回复

使用道具 举报

1079#
发表于 2022-5-14 21:00:33 | 显示全部楼层
本帖最后由 527104427 于 2022-5-14 21:03 编辑
826773297 发表于 2022-5-14 20:43
大致看了一下,sed命令对已知行数有效,如果不是固定的行数应该会出错

试一下不就知道了:
{\a+}*?%nl%*? 就是表示有一行也行,有N行也行,写一个就可以了,我上面写了两个,有点啰嗦

#code=936T950
ENVI^ EnviMode=1
ENVI^ ForceLocal=1

set$ nl=0D 0A
set 内容=
\[AAAA]%NL%
\SDFDSFD%NL%
\[BBBBBBB]%NL%
\SDFSDF%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\323423434%NL%
\[AAAA]%NL%
\SDFSDFDSFDS%NL%
\[AAAA]

sed -ex a=?,\[BBBBBBB\]%nl%*?{\a+}*?%nl%*?\[,b,内容

mess. --%a%--%b%--

点评

确实可以,感谢分享,我看到有几个%nl%,以为是指定的几行内容  详情 回复 发表于 2022-5-14 21:04
回复

使用道具 举报

1080#
发表于 2022-5-15 21:10:32 | 显示全部楼层
mdyblog 发表于 2022-5-15 18:37
这没有执行代码。
都是些说明文档(头文件)。

请教M大,批处理的变量,像这种: %comspec:~-13,1%
能拿到PECMD里直接引用吗?

点评

试试: PECMD2012.1.88.05.87Stable-220512H测试.7z ENVI &V=123456789ABCDEF ENVI V=123456789ABCDEF MESS. [%&V:~-5,-2%] [%V:~-5,-2%]  详情 回复 发表于 2022-5-16 15:29
MSTR v=-13,1,%comspec%  详情 回复 发表于 2022-5-16 09:16
批处理里面的这个用法确实方便  详情 回复 发表于 2022-5-15 23:50
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-9 09:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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