无忧启动论坛

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

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

    [复制链接]
17011#
发表于 2022-5-12 23:49:09 | 只看该作者
mdyblog 发表于 2022-5-12 22:28
哦,1==>3, 适应性更强  
WIn11测试通过

这里的1和3的含义,有微软官方文档的链接吗?给一个看下

点评

这是功能扩展。 3=0x01 | 0x02 0x01位: 背景控制, 后面带 具体控制参数 0x00010001 低16位控制文字底色,0x01文字透明。 高16位控制背景擦除,0x01是不擦除背景。 0x02位: 统一模式。避  详情 回复 发表于 2022-5-13 04:38
回复

使用道具 举报

17012#
发表于 2022-5-12 23:53:45 | 只看该作者
mdyblog 发表于 2022-5-12 22:19
WIn7X64:
ENVI  F=C:\Windows\System32\aaclient.dll

测试结果正确,谢谢!
回复

使用道具 举报

17013#
发表于 2022-5-13 02:18:44 | 只看该作者
本帖最后由 Anson4 于 2022-5-13 02:24 编辑
mdyblog 发表于 2022-5-12 13:06
PECMD2012.1.88.05.87Stable-220512A测试.7z
┃│■格式数据:表头. 各列TAB键间隔。每列『[#颜色 ...

效果很好!但发现一个BUG:给表格赋值时,最后一列的内容丢失。
另外,12B版本的64位PECMD.EXE体积与PECMD原始.EXE的体积一样大。
_TABL_TEST_COLUMN.zip (1.08 KB, 下载次数: 11)


点评

重新下载。  详情 回复 发表于 2022-5-13 09:23
回复

使用道具 举报

17014#
 楼主| 发表于 2022-5-13 04:38:59 | 只看该作者
本帖最后由 mdyblog 于 2022-5-13 09:25 编辑
红毛樱木 发表于 2022-5-12 23:49
这里的1和3的含义,有微软官方文档的链接吗?给一个看下

这是功能扩展。
3=0x01 | 0x02

0x01位: 背景控制, 后面 可追加 高级 控制参数
   0x00010001  低16位控制文字底色,0x01文字透明。====WM_CTLCOLORBTN
               高16位控制背景擦除,0x01是不擦除背景。====WM_ERASEBKGND
0x02位: 统一模式。避免控制方式还要分情况。统一到 非XP视觉模式。
回复

使用道具 举报

17015#
 楼主| 发表于 2022-5-13 09:23:25 | 只看该作者
Anson4 发表于 2022-5-13 02:18
效果很好!但发现一个BUG:给表格赋值时,最后一列的内容丢失。
另外,12B版本的64位PECMD.EXE体积与PEC ...

重新下载。

点评

这个版本问题得到解决,辛苦了!  详情 回复 发表于 2022-5-13 11:20
回复

使用道具 举报

17016#
发表于 2022-5-13 11:20:26 | 只看该作者

这个版本问题得到解决,辛苦了!
回复

使用道具 举报

17017#
发表于 2022-5-14 08:33:31 | 只看该作者
请教一下m大,pecmd能否列出未安装驱动的硬件id,列出已安装驱动的硬件id,单独列出网卡硬件id这几个功能

点评

试试: 安装了: *inf=1 未安装: *inf=0 TEAM DEVI listdev:&V *inf=1|MESS. %&V% TEAM DEVI listdev:&V *inf=0|MESS. %&V% 列出 INF: *inf 列出 更多信息: *inf=detail  详情 回复 发表于 2022-5-14 11:54
回复

使用道具 举报

17018#
 楼主| 发表于 2022-5-14 11:54:01 | 只看该作者
本帖最后由 mdyblog 于 2022-5-15 10:24 编辑
826773297 发表于 2022-5-14 08:33
请教一下m大,pecmd能否列出未安装驱动的硬件id,列出已安装驱动的硬件id,单独列出网卡硬件id这几个功能

试试: D版

安装了: *inf=1
未安装:  *inf=0
TEAM DEVI listdev:&V *inf=1|MESS. %&V%

TEAM DEVI listdev:&V *inf=0|MESS. %&V%
列出 INF:  *inf
列出 基本信息:  *inf=base列出 更多信息:  *inf=detail

网卡 试试  *devclass:DevClass  *devclass:[~!]{GUID}   参数
*devclass:~Net   //~会加速点



点评

PECMD如何从指定的行继续向下查找一个匹配的行号 ENVI$ &NL=0D 0A ENVI 内容= \[AAAA]%&NL% \SDFDSFD%&NL% \%&NL% \SDFSDF%&NL% \323423434%&NL% \[AAAA]%&NL% \SDFSDFDSFDS%&NL% \[AAAA] 比如这里要找一  详情 回复 发表于 2022-5-14 19:39
好的  详情 回复 发表于 2022-5-14 19:23
回复

使用道具 举报

17019#
发表于 2022-5-14 19:23:40 | 只看该作者
mdyblog 发表于 2022-5-14 11:54
试试: D版

安装了: *inf=1

好的
回复

使用道具 举报

17020#
发表于 2022-5-14 19:39:45 | 只看该作者
mdyblog 发表于 2022-5-14 11:54
试试: D版

安装了: *inf=1

PECMD如何从指定的行继续向下查找一个匹配的行号
ENVI$ &NL=0D 0A
ENVI 内容=
\[AAAA]%&NL%
\SDFDSFD%&NL%
\[BBBBBBB]%&NL%
\SDFSDF%&NL%
\323423434%&NL%
\[AAAA]%&NL%
\SDFSDFDSFDS%&NL%
\[AAAA]
比如这里要找一段[BBBBBBB]开头,[结尾的内容该怎么写比较好

点评

结尾[前必须是%NL%吗? 是的话, %NL%[ 就是结尾。  详情 回复 发表于 2022-5-14 22:24
#code=936T950 ENVI^ EnviMode=1 ENVI^ ForceLocal=1 set$ nl=0D 0A set 内容= \[AAAA]%&NL% \SDFDSFD%&NL% \%&NL% \SDFSDF%&NL% \323423434%&NL% \[AAAA]%&NL% \SDFSDFDSFDS%&NL% \[AAAA] lpos*  详情 回复 发表于 2022-5-14 20:17
回复

使用道具 举报

17021#
发表于 2022-5-14 19:54:39 | 只看该作者

没安装网卡驱动的情况下好像是显示所有硬件id

点评

网卡Net 可用 GUID {4D36E972-E325-11CE-BFC1-08002BE10318} TEAM DEVI listdev:&V *devclass:~{4D36E972-E325-11CE-BFC1-08002BE10318} *inf=detail *inf=1 | MESS. %&V% TEAM DEVI listdev:&V *devclass:~{4D  详情 回复 发表于 2022-5-14 22:08
回复

使用道具 举报

17022#
发表于 2022-5-14 20:02:02 | 只看该作者

DEVI的*INF参数有点卡,pnputil显示很快

点评

试试 没有devclass 的设备: TEAM DEVI listdev:&V *devclass:{00000000-0000-0000-0000-000000000000} |MESS. %&V%  详情 回复 发表于 2022-5-14 22:54
不涉及驱动,如INF, 那会很快的。  详情 回复 发表于 2022-5-14 22:04
回复

使用道具 举报

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

使用道具 举报

17024#
发表于 2022-5-14 20:25:42 | 只看该作者
527104427 发表于 2022-5-14 20:17
#code=936T950
ENVI^ EnviMode=1
ENVI^ ForceLocal=1

好的,感谢

点评

#code=936T950 ENVI^ EnviMode=1 ENVI^ ForceLocal=1 set$ nl=0D 0A set 内容= \[AAAA]%NL% \SDFDSFD%NL% \%NL% \SDFSDF%NL% \323423434%NL% \[AAAA]%NL% \SDFSDFDSFDS%NL% \[AAAA] sed -ex a=?,\%  详情 回复 发表于 2022-5-14 20:35
回复

使用道具 举报

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

使用道具 举报

17026#
发表于 2022-5-14 20:40:56 | 只看该作者
527104427 发表于 2022-5-14 20:35
还有更简单的,一句SED搞定:

#code=936T950

还有这种操作,感谢分享
回复

使用道具 举报

17027#
发表于 2022-5-14 20:43:00 | 只看该作者
527104427 发表于 2022-5-14 20:35
还有更简单的,一句SED搞定:

#code=936T950

大致看了一下,sed命令对已知行数有效,如果不是固定的行数应该会出错

点评

试一下不就知道了: #code=936T950 ENVI^ EnviMode=1 ENVI^ ForceLocal=1 set$ nl=0D 0A set 内容= \[AAAA]%NL% \SDFDSFD%NL% \%NL% \SDFSDF%NL% \323423434%NL% \323423434%NL% \323423434%NL% \3  详情 回复 发表于 2022-5-14 21:00
回复

使用道具 举报

17028#
发表于 2022-5-14 20:51:49 | 只看该作者
对了,dismapi能用pecmd调用吗
https://docs.microsoft.com/zh-cn ... ple?view=windows-11

点评

常规的DLL的C调用API,用PECMD基本都行的。  详情 回复 发表于 2022-5-14 21:17
回复

使用道具 举报

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

使用道具 举报

17030#
发表于 2022-5-14 21:04:44 | 只看该作者
527104427 发表于 2022-5-14 21:00
试一下不就知道了:
{\a+}*?%nl%*? 就是表示有一行也行,有N行也行,写一个就可以了,我上面写了两个, ...

确实可以,感谢分享,我看到有几个%nl%,以为是指定的几行内容
回复

使用道具 举报

17031#
发表于 2022-5-14 21:17:34 | 只看该作者
826773297 发表于 2022-5-14 20:51
对了,dismapi能用pecmd调用吗
https://docs.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/ ...

常规的DLL的C调用API,用PECMD基本都行的。
  1. ENVI &&DismLogErrorsWarningsInfo=2
  2. CALL $--qd --cd --ret:&&DismInitializeRet %&SystemROOT%\System32\DismApi.dll,DismInitialize,#%&DismLogErrorsWarningsInfo%,$C:\MyLogFile.txt,#0
  3. MESS. %&error%<%&DismInitializeRet%>
复制代码

点评

返回0  详情 回复 发表于 2022-5-14 21:26
回复

使用道具 举报

17032#
发表于 2022-5-14 21:26:07 | 只看该作者
红毛樱木 发表于 2022-5-14 21:17
常规的DLL的C调用API,用PECMD基本都行的。

返回0

点评

S_OK=0 没问题的  详情 回复 发表于 2022-5-14 21:28
回复

使用道具 举报

17033#
发表于 2022-5-14 21:28:26 | 只看该作者

S_OK=0
没问题的
回复

使用道具 举报

17034#
 楼主| 发表于 2022-5-14 22:04:50 | 只看该作者
826773297 发表于 2022-5-14 20:02
DEVI的*INF参数有点卡,pnputil显示很快

不涉及驱动(如INF), 那会很快的。
回复

使用道具 举报

17035#
 楼主| 发表于 2022-5-14 22:08:43 | 只看该作者
826773297 发表于 2022-5-14 19:54
没安装网卡驱动的情况下好像是显示所有硬件id

网卡Net 可用 GUID {4D36E972-E325-11CE-BFC1-08002BE10318}
TEAM DEVI listdev:&V *devclass:~{4D36E972-E325-11CE-BFC1-08002BE10318} *inf=detail *inf=1  | MESS. %&V%

TEAM DEVI listdev:&V *devclass:~{4D36E972-E325-11CE-BFC1-08002BE10318} *inf=detail *inf=0  | MESS. %&V%

TEAM DEVI listdev:&V *devclass:~{4D36E972-E325-11CE-BFC1-08002BE10318} *inf=detail| MESS. %&V%

点评

其实用devclass最不靠谱了,系统里如果网卡驱动没有安装的时候,devclass属性是没有的。 意思就是,设备如果没有安装驱动,很多情况下都没有devclass属性的  详情 回复 发表于 2022-5-14 22:16
回复

使用道具 举报

17036#
发表于 2022-5-14 22:16:28 | 只看该作者
mdyblog 发表于 2022-5-14 22:08
网卡Net 可用 GUID {4D36E972-E325-11CE-BFC1-08002BE10318}
TEAM DEVI listdev:&V *devclass:~{4D36E97 ...

其实用devclass最不靠谱了,系统里如果网卡驱动没有安装的时候,devclass属性是没有的。

意思就是,设备如果没有安装驱动,很多情况下都没有devclass属性的
回复

使用道具 举报

17037#
 楼主| 发表于 2022-5-14 22:24:57 | 只看该作者
本帖最后由 mdyblog 于 2022-5-14 22:34 编辑
826773297 发表于 2022-5-14 19:39
PECMD如何从指定的行继续向下查找一个匹配的行号
ENVI$ &NL=0D 0A
ENVI 内容=

用 .*?
? 表示  匹配【最短】的   字符串。
  
结尾[前必须是%NL%吗? 是的话, %NL%[ 就是结尾。

//不限定%NL%[
sed -ex a=?,\[BBBBBBB\].*?\[,b,内容
MESS a=[%a%] b=%b%

//必须%NL%[
sed -ex a=?,\[BBBBBBB\].*?%NL%\[,b,内容
MESS a=[%a%] b=%b%



点评

好的,已成功  详情 回复 发表于 2022-5-15 08:15
回复

使用道具 举报

17038#
 楼主| 发表于 2022-5-14 22:54:58 | 只看该作者
本帖最后由 mdyblog 于 2022-5-15 10:22 编辑
826773297 发表于 2022-5-14 20:02
DEVI的*INF参数有点卡,pnputil显示很快

试试 没有devclass 的设备:
TEAM DEVI listdev:&V *devclass:{00000000-0000-0000-0000-000000000000}  |MESS. %&V%
排除 没有devclass 的设备:
TEAM DEVI listdev:&V *devclass:!{00000000-0000-0000-0000-000000000000}  *inf=base|MESS. %&V%


点评

这一招很Nice  发表于 2022-5-14 23:10
回复

使用道具 举报

17039#
发表于 2022-5-15 08:15:09 | 只看该作者
mdyblog 发表于 2022-5-14 22:24
用 .*?
? 表示  匹配【最短】的   字符串。
  

好的,已成功
回复

使用道具 举报

17040#
发表于 2022-5-15 10:43:55 | 只看该作者
m大,pecmd能实现这个api吗

点评

////下面按实际准备数据 SET &driverpackinfpath=D:\Src\A.ING SET &Flags=0x00 SET &ProcessArch=0x0000 SET &LocalName=. SET &LocalName=. SET &cchDestInfPath=*8 0 SET-ptr cchDestInfPath=8192 //整  详情 回复 发表于 2022-5-15 11:24
看上去就是C的api调用,可以的呀  详情 回复 发表于 2022-5-15 11:17
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-29 07:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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