无忧启动论坛

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

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

    [复制链接]
19191#
 楼主| 发表于 前天 15:02 | 只看该作者
泮安宁 发表于 2024-5-29 14:18
TABL -sl:%&SL% -sc:%&SC%
-sl -sc什么意思没找到说明啊,按指定的字符换行换列吗按这个说明,TAB键和换行 ...

sl 指定分行符
sc指定分列符

点评

这有两个 -sc [attachimg]542344[/attachimg]  详情 回复 发表于 前天 19:23
回复

使用道具 举报

19190#
发表于 前天 14:18 | 只看该作者
TABL -sl:%&SL% -sc:%&SC%
-sl -sc什么意思没找到说明啊,按指定的字符换行换列吗
■数据:表格内容初始化数据.各列TAB键间隔。各行换行符间隔。  
按这个说明,TAB键和换行符是不是也能实现相同效果

点评

sl 指定分行符 sc指定分列符  详情 回复 发表于 前天 15:02
回复

使用道具 举报

19189#
发表于 前天 13:39 | 只看该作者
回复

使用道具 举报

19188#
 楼主| 发表于 前天 12:43 | 只看该作者
527104427 发表于 2024-5-29 12:13
我简化了一下代码:

set$ tab=09

PECMD-磁盘序列号-ShowCn-LISTFont5渐透明.7z
新版支持 相对高度。 就是 行高 的比例。
回复

使用道具 举报

19187#
发表于 前天 12:13 | 只看该作者
mdyblog 发表于 2024-5-29 11:35
TABL -cksz:21也没看出差别呀?:

我简化了一下代码:

set$ tab=09
set$ nl=0d 0a
CALL PE
EXIT

_SUB PE,W610H360,,,,,,
        TABL -font:10:::::::::(12*2) TABL1,L10T60W460H264,+50:%TAB%330:%TAB%+55:,aaa%nl%bbb,0x82400
_END


点评

PECMD-磁盘序列号-ShowCn-LISTFont5渐透明.7z  详情 回复 发表于 前天 12:43
回复

使用道具 举报

19186#
发表于 前天 12:05 | 只看该作者
mdyblog 发表于 2024-5-29 11:35
TABL -cksz:21也没看出差别呀?:

他原来的代码没有-cksz,打勾器显示不出来,估计是tabl进化之前的代码。
也许m大应该兼容一下旧代码,没有指定打勾器大小时也能正常显示。
回复

使用道具 举报

19185#
 楼主| 发表于 前天 11:35 | 只看该作者

TABL -cksz:21也没看出差别呀?:


点评

我简化了一下代码: set$ tab=09 set$ nl=0d 0a CALL PE EXIT _SUB PE,W610H360,,,,,, TABL -font:10:::::::::(12*2) TABL1,L10T60W460H264,+50:%TAB%330:%TAB%+55:,aaa%nl%bbb,0x82400 _END  详情 回复 发表于 前天 12:13
他原来的代码没有-cksz,打勾器显示不出来,估计是tabl进化之前的代码。 也许m大应该兼容一下旧代码,没有指定打勾器大小时也能正常显示。  详情 回复 发表于 前天 12:05
回复

使用道具 举报

19184#
发表于 前天 11:29 | 只看该作者
mdyblog 发表于 2024-5-29 11:25
不要这么 大的源码。
就一个 简单的 演示测试代码。 不需要的代码不要。
直接贴, 或 上传文件

原本代码是这样 TABL -font:10:::::::::(12*2) TABL1,L10T60W460H264,+50:%TAB%330:%TAB%+55:,,0x82400

楼上提醒加上 -cksz:21 就能显示了
回复

使用道具 举报

19183#
 楼主| 发表于 前天 11:25 | 只看该作者
liangnijian 发表于 2024-5-29 11:02
脚本在这里 pecmd.net/thread-831.htm

不要这么 大的源码。
就一个 简单的 演示测试代码。 不需要的代码不要。
直接贴, 或 上传文件

点评

原本代码是这样 TABL -font:10:::::::::(12*2) TABL1,L10T60W460H264,+50:%TAB%330:%TAB%+55:,,0x82400 楼上提醒加上 -cksz:21 就能显示了  详情 回复 发表于 前天 11:29
回复

使用道具 举报

19182#
发表于 前天 11:24 | 只看该作者

学习了
回复

使用道具 举报

19181#
发表于 前天 11:18 | 只看该作者
liangnijian 发表于 2024-5-29 10:07
反馈个问题:用 PECMD-磁盘序列号-devidA.7z 这个版本的TABL 0x400带打勾器 这个打勾器显示有问题。PECMD20 ...

TABL -cksz:21



点评

TABL -cksz:21也没看出差别呀?: [attachimg]542306[/attachimg]  详情 回复 发表于 前天 11:35
学习了  详情 回复 发表于 前天 11:24
回复

使用道具 举报

19180#
发表于 前天 11:02 | 只看该作者
mdyblog 发表于 2024-5-29 10:39
给个简单的 演示测试 脚本吧。

脚本在这里 pecmd.net/thread-831.htm

点评

不要这么 大的源码。 就一个 简单的 演示测试代码。 不需要的代码不要。  详情 回复 发表于 前天 11:25
回复

使用道具 举报

19179#
 楼主| 发表于 前天 10:39 | 只看该作者
本帖最后由 mdyblog 于 2024-5-29 10:43 编辑
Anson4 发表于 2024-5-29 09:43
这窗口看起来很是厚重

那是图片的 原因  32X32的图片, 放大 道800, 圆角变大了,  边框 也变厚了。这个 PS做的 图片 , 效果 就不一样了

回复

使用道具 举报

19178#
 楼主| 发表于 前天 10:39 | 只看该作者
liangnijian 发表于 2024-5-29 10:07
反馈个问题:用 PECMD-磁盘序列号-devidA.7z 这个版本的TABL 0x400带打勾器 这个打勾器显示有问题。PECMD20 ...

给个简单的 演示测试 脚本吧。

点评

脚本在这里 pecmd.net/thread-831.htm  详情 回复 发表于 前天 11:02
回复

使用道具 举报

19177#
发表于 前天 10:07 | 只看该作者
本帖最后由 liangnijian 于 2024-5-29 10:29 编辑

反馈个问题:用 PECMD-磁盘序列号-devidA.7z 这个版本的TABL 0x400带打勾器 这个打勾器显示有问题。PECMD2012.1.88.05.94Stable-240501测试F.7z 这个版本还是能显示打勾器,之后更新的版本就有问题了

点评

TABL -cksz:21 [attachimg]542303[/attachimg]  详情 回复 发表于 前天 11:18
给个简单的 演示测试 脚本吧。  详情 回复 发表于 前天 10:39
回复

使用道具 举报

19176#
发表于 前天 09:43 | 只看该作者
mdyblog 发表于 2024-5-28 21:48
渐透明 支持。 光滑圆角。

效果:

这窗口看起来很是厚重

点评

那是图片的 原因  详情 回复 发表于 前天 10:39
回复

使用道具 举报

19175#
 楼主| 发表于 前天 05:37 | 只看该作者
泮安宁 发表于 2024-5-29 04:17
m大又搞通宵了啊
还是老样子

PECMD_DPIv2F3渐透明.7z (249.2 KB, 下载次数: 15)

PECMD64.7z (1.14 MB, 下载次数: 18)

点评

这个可以了  详情 回复 发表于 前天 13:39
回复

使用道具 举报

19174#
发表于 前天 04:17 | 只看该作者
mdyblog 发表于 2024-5-29 04:00
哦, 开了DPI缩放吧。 这个支持DIPI缩放:

m大又搞通宵了啊
还是老样子



回复

使用道具 举报

19173#
 楼主| 发表于 前天 04:00 | 只看该作者
哦, 开了DPI缩放吧。 这个支持DIPI缩放:
PECMD_DPIv2F渐透明.zip (254.69 KB, 下载次数: 11)

点评

m大又搞通宵了啊 还是老样子 [attachimg]542289[/attachimg]  详情 回复 发表于 前天 04:17
回复

使用道具 举报

19172#
 楼主| 发表于 前天 00:12 | 只看该作者

H3 W11:
回复

使用道具 举报

19171#
发表于 3 天前 | 只看该作者
mdyblog 发表于 2024-5-28 23:22
最新版 PECMD
H3 WIn10x64效果:

Win11


点评

H3 W11:[attachimg]542286[/attachimg]  详情 回复 发表于 前天 00:12
回复

使用道具 举报

19170#
 楼主| 发表于 3 天前 | 只看该作者
527104427 发表于 2024-5-28 23:05
好像不太对劲,win10测试。

最新版 PECMD
H3 WIn10x64效果:

点评

Win11 [attachimg]542285[/attachimg]  详情 回复 发表于 3 天前
回复

使用道具 举报

19169#
发表于 3 天前 | 只看该作者
mdyblog 发表于 2024-5-28 21:48
渐透明 支持。 光滑圆角。

效果:



好像不太对劲,win10测试。





点评

最新版 PECMD H3 WIn10x64效果: [attachimg]542284[/attachimg]  详情 回复 发表于 3 天前
回复

使用道具 举报

19168#
 楼主| 发表于 3 天前 | 只看该作者
本帖最后由 mdyblog 于 2024-5-29 03:59 编辑

渐透明 支持。 光滑圆角。
PECMD_DPIv2F2渐透明.zip (249.18 KB, 下载次数: 0)
效果:


点评

这窗口看起来很是厚重  详情 回复 发表于 前天 09:43
好像不太对劲 [attachimg]542283[/attachimg]  详情 回复 发表于 3 天前
回复

使用道具 举报

19167#
 楼主| 发表于 3 天前 | 只看该作者
Anson4 发表于 2024-5-28 17:20
我主力机是NvMe硬盘,M大你什么时间方便呢?

晚上可以
回复

使用道具 举报

19166#
发表于 3 天前 | 只看该作者
mdyblog 发表于 2024-5-28 16:11
我这没有NVMe调试环境。

谁有远程调试NVME环境,开个 ToDesk ,和密码发过来。 看看能不能 调试通。 ...

我主力机是NvMe硬盘,M大你什么时间方便呢?

点评

晚上可以  详情 回复 发表于 3 天前
回复

使用道具 举报

19165#
 楼主| 发表于 3 天前 | 只看该作者
Anson4 发表于 2024-5-28 11:16
测试了一下,NvMe硬盘的序列号读取还是不正确,SATA的则没问题,都是本地硬盘。

SATA,正确。

0123_4567_89AB_CDEF.
(最后有个点.) 这种是  单元序列号,不是单元控制器的序列号。

单元序列号一般是硬盘的GUID或EUI64(64为整数),采用下划线分16进制记法,最后加上一个点。
回复

使用道具 举报

19164#
 楼主| 发表于 3 天前 | 只看该作者
Anson4 发表于 2024-5-28 11:16
测试了一下,NvMe硬盘的序列号读取还是不正确,SATA的则没问题,都是本地硬盘。

SATA,正确。

我这没有NVMe调试环境。

谁有远程调试NVME环境,开个 ToDesk ,和密码发过来。 看看能不能 调试通。

点评

我主力机是NvMe硬盘,M大你什么时间方便呢?  详情 回复 发表于 3 天前
回复

使用道具 举报

19163#
 楼主| 发表于 3 天前 | 只看该作者
527104427 发表于 2024-5-28 11:52
VendorId 怎么是一个括号?

这个应该是没有。
新版 PECMD-磁盘序列号-ShowCn-LISTFont2.7z 修正了
回复

使用道具 举报

19162#
发表于 3 天前 | 只看该作者
本帖最后由 527104427 于 2024-5-28 11:53 编辑
mdyblog 发表于 2024-5-28 05:58
PECMD-磁盘序列号-ShowCn-LISTFont.7z
┃PART [-devid[x|n|a]] list   [磁盘],变量名  //-devid返回磁盘 ...


VendorId 怎么是一个括号?




我用API写了一段代码,经测试,win7大部分有VendorId,而win10大部分没有VendorId:

这是win7的:





这是win10的:




测试代码:
  1. //https://learn.microsoft.com/zh-cn/windows/win32/fileio/disk-management-control-codes
  2. //https://learn.microsoft.com/zh-cn/windows/win32/api/winioctl/ni-winioctl-ioctl_storage_query_property
  3. //https://learn.microsoft.com/zh-cn/windows/win32/api/winioctl/ns-winioctl-storage_property_query
  4. //https://blog.csdn.net/lengye7/article/details/122953234

  5. set^ EnviMode=1
  6. set^ ForceLocal=1
  7. set$ nl=0d 0a
  8. envi PartitionInformation=

  9. //set disk=\\?\STORAGE#Volume#{bd7e99c2-72f8-11ed-b079-806e6f6e6963}#0000000000100000#{7f108a28-9833-4b3b-b780-2c6b5fa5c062}  //检索设备接口路径
  10. //set disk=\\?\scsi#disk&ven_st2000dm&prod_001-1ch164#4&15828421&0&030000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}  //检索设备接口路径
  11. //set disk=\\?\scsi#disk&ven_samsung&prod_ssd_850_evo_500g#4&15828421&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}  //检索设备接口路径
  12. //set disk=\\.\Volume{e1d1e74e-4d47-11ed-aa55-806e6f6e6963}     //检索卷
  13. //set disk=\\.\HarddiskVolume2       //检索 MS-DOS 设备
  14. set disk=\\.\PhysicalDrive0        //检索磁盘
  15. //set disk=\\.\Harddisk0Partition1   //检索分区
  16. //set disk=\\.\GLOBALROOT\device\Harddisk0\Partition1   //检索分区
  17. //set disk=\\.\C:   //检索 C 盘

  18. set generic_read=0x80000000
  19. set file_share_read=0x00000001
  20. set file_share_write=0x00000002
  21. calc dwShareMode=%file_share_read% | %file_share_write%
  22. set open_existing=3
  23. set file_attribute_normal=0x00000080
  24. call $--qd --ret:h Kernel32.dll,CreateFileW,$%disk%,#%generic_read%,#%dwShareMode%,#0,#%open_existing%,#%file_attribute_normal%,#0  //如果函数成功,则返回值是指定文件、设备、命名管道或邮件槽的打开句柄。如果函数失败,则返回值为 INVALID_HANDLE_VALUE (-1)。 要获得更多的错误信息,请调用 GetLastError。
  25. ifex $%h%<>-1,
  26. {
  27.         set ioctl_storage_base=0x0000002d
  28.         set Function=0x0500
  29.         set method_buffered=0
  30.         set file_any_access=0
  31.         calc ioctl_storage_query_property=shl(%ioctl_storage_base%,16) | shl(%file_any_access%,14) | shl(%Function%,2) | %method_buffered%    //0x2D1400

  32.         set nInBufferSize=0xC  //结构体 storage_property_query 的长度
  33.         set$# lpInBuffer=*%nInBufferSize% 0
  34.         set-long PropertyId=0  //由 storage_property_id 枚举的 StorageDeviceProperty 值,指示调用方是请求设备描述符、适配器描述符、写入缓存属性、设备唯一 ID (DUID) ,还是设备 SCSI 重要产品数据 (VPD) 页中提供的设备标识符。
  35.         set-long QueryType=0   //由 storage_query_type 枚举的 PropertyStandardQuery 值,要查询类型的标志
  36.         set-long AdditionalParameters=0  //包含可用于检索特定查询的其他参数的字节数组
  37.         set-copy lpInBuffer=PropertyId;0;4;0
  38.         set-copy lpInBuffer=QueryType;0;4;4
  39.         set-copy lpInBuffer=AdditionalParameters;0;4;(4 + 4)

  40.         ifex $%::bX64%<3, set lpdword=4! set lpdword=8   //%&::bX64%=0, PECMD32+Win32  //%&::bX64%=1, PECMD32+WIN64  //%&::bX64%=3, PECMD64+WIN64
  41.         calc nOutBufferSize=0x28 + 1K  //结构体 storage_device_descriptor 的长度
  42.         set$# lpOutBuffer=*%nOutBufferSize% 0
  43.         set$# lpBytesReturned=*%lpdword% 0  //LPDWORD 实际就是DWORD类型,int
  44.         call $--qd --ret:RetDeviceIoControl Kernel32.dll,DeviceIoControl,#%h%,#%ioctl_storage_query_property%,*lpInBuffer,#%nInBufferSize%,*lpOutBuffer,#%nOutBufferSize%,*lpBytesReturned,#0  //如果操作成功完成,则返回值为非零 (TRUE) 。如果操作失败或挂起,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
  45.         call $--qd --bool --ret:RetCloseHandle Kernel32.dll,CloseHandle,#%h%  //如果函数成功,则返回值为非零值。如果函数失败,则返回值为零。若要获取扩展的错误信息,请调用 GetLastError。如果应用程序在调试器下运行,则函数在收到无效的句柄值或伪句柄值时将引发异常。如果关闭句柄两次,或者对 FindFirstFile 函数返回的句柄调用 CloseHandle,而不是调用 FindClose 函数,则可能会发生这种情况。
  46.         ifex $%RetDeviceIoControl%<>0,
  47.         {
  48.                 //结构体 storage_device_descriptor
  49.                 set?int lpOutBuffer=Version:0
  50.                 set?int lpOutBuffer=Size:4
  51.                 set?char lpOutBuffer=DeviceType:(4 + 4)
  52.                 set?char lpOutBuffer=DeviceTypeModifier:(4 + 4 + 1)
  53.                 set?char lpOutBuffer=RemovableMedia:(4 + 4 + 1 + 1)
  54.                 set?char lpOutBuffer=CommandQueueing:(4 + 4 + 1 + 1 + 1)
  55.                 set?int lpOutBuffer=VendorIdOffset:(4 + 4 + 1 + 1 + 1 + 1)
  56.                 set?int lpOutBuffer=ProductIdOffset:(4 + 4 + 1 + 1 + 1 + 1 + 4)
  57.                 set?int lpOutBuffer=ProductRevisionOffset:(4 + 4 + 1 + 1 + 1 + 1 + 4 + 4)
  58.                 set?int lpOutBuffer=SerialNumberOffset:(4 + 4 + 1 + 1 + 1 + 1 + 4 + 4 + 4)
  59.                 set?int lpOutBuffer=BusType:(4 + 4 + 1 + 1 + 1 + 1 + 4 + 4 + 4 + 4)
  60.                 set?int lpOutBuffer=RawPropertiesLength:(4 + 4 + 1 + 1 + 1 + 1 + 4 + 4 + 4 + 4 + 4)
  61.                 call GetBusType BusType
  62.                 call GetStr VendorId %VendorIdOffset%
  63.                 call GetStr ProductId %ProductIdOffset%
  64.                 call GetStr ProductRevision %ProductRevisionOffset%
  65.                 call GetStr SerialNumber %SerialNumberOffset%

  66.                 set PartitionInformation=
  67.                         \%nl%Version: %Version%
  68.                         \%nl%Size: %Size%   //%lpOutBuffer?long:4%  //%lpOutBuffer?int:4% 这个表示法有问题,把int当成char了
  69.                         \%nl%DeviceType: %DeviceType%
  70.                         \%nl%DeviceTypeModifier: %DeviceTypeModifier%
  71.                         \%nl%RemovableMedia: %RemovableMedia%
  72.                         \%nl%CommandQueueing: %CommandQueueing%
  73.                         \%nl%VendorIdOffset: %VendorIdOffset%
  74.                         \%nl%ProductIdOffset: %ProductIdOffset%
  75.                         \%nl%ProductRevisionOffset: %ProductRevisionOffset%
  76.                         \%nl%SerialNumberOffset: %SerialNumberOffset%
  77.                         \%nl%BusType: %BusType%
  78.                         \%nl%RawPropertiesLength: %RawPropertiesLength%
  79.                         \%nl%VendorId: %VendorId%
  80.                         \%nl%ProductId: %ProductId%
  81.                         \%nl%ProductRevision: %ProductRevision%
  82.                         \%nl%SerialNumber: %SerialNumber%
  83.         }
  84. }
  85. find *=PartitionInformation, mess=+icon6. 检索失败!@错误#ok*3000! mess. %PartitionInformation%
  86. exit

  87. _sub GetStr
  88.         envi szId=
  89.         ifex $%~2>0,
  90.         {
  91.                 set-make lpHex=&lpOutBuffer@%~2;*(%Size% - %~2)
  92.                 code **ansi,lpHex,**uni,szId
  93.         }
  94.         set-ret %~1=%szId%
  95. _end

  96. _sub GetBusType
  97.         ^ifex $%%%~1%%=0x00, team set-ret< %~1= (BusTypeUnknown) (Unknown)| exit    //未知总线类型。
  98.         ^ifex $%%%~1%%=0x01, team set-ret< %~1= (BusTypeScsi) (SCSI)| exit    //SCSI 总线。
  99.         ^ifex $%%%~1%%=0x02, team set-ret< %~1= (BusTypeAtapi) (ATAPI)| exit    //ATAPI 总线。
  100.         ^ifex $%%%~1%%=0x03, team set-ret< %~1= (BusTypeAta) (ATA)| exit    //ATA 总线。
  101.         ^ifex $%%%~1%%=0x04, team set-ret< %~1= (BusType1394) (1394)| exit    //IEEE-1394 总线。
  102.         ^ifex $%%%~1%%=0x05, team set-ret< %~1= (BusTypeSsa) (SSA)| exit    //SSA 总线。
  103.         ^ifex $%%%~1%%=0x06, team set-ret< %~1= (BusTypeFibre) (Fibre Channel)| exit    //光纤通道总线。
  104.         ^ifex $%%%~1%%=0x07, team set-ret< %~1= (BusTypeUsb) (USB)| exit    //USB 总线。
  105.         ^ifex $%%%~1%%=0x08, team set-ret< %~1= (BusTypeRAID) (RAID)| exit    //RAID 总线。
  106.         ^ifex $%%%~1%%=0x09, team set-ret< %~1= (BusTypeiScsi) (iSCSI)| exit
  107.         ^ifex $%%%~1%%=0x0A, team set-ret< %~1= (BusTypeSas) (SAS)| exit    //串行附加的 SCSI (SAS) 总线。Windows Server 2003: 在 Windows Server 2003 SP1 之前不支持此功能。
  108.         ^ifex $%%%~1%%=0x0B, team set-ret< %~1= (BusTypeSata) (SATA)| exit    //SATA 总线。Windows Server 2003: 在 Windows Server 2003 SP1 之前不支持此功能。
  109.         ^ifex $%%%~1%%=0x0C, team set-ret< %~1= (BusTypeSd) (SD)| exit
  110.         ^ifex $%%%~1%%=0x0D, team set-ret< %~1= (BusTypeMmc) (MMC)| exit
  111.         ^ifex $%%%~1%%=0x0E, team set-ret< %~1= (BusTypeVirtual) (Virtual)| exit
  112.         ^ifex $%%%~1%%=0x0F, team set-ret< %~1= (BusTypeFileBackedVirtual) (File Backed Virtual)| exit
  113.         ^ifex $%%%~1%%=0x10, team set-ret< %~1= (BusTypeSpaces) (Storage Spaces)| exit
  114.         ^ifex $%%%~1%%=0x11, team set-ret< %~1= (BusTypeNvme) (Nvme)| exit
  115.         ^ifex $%%%~1%%=0x12, team set-ret< %~1= (BusTypeSCM) (SCM)| exit
  116.         ^ifex $%%%~1%%=0x13, team set-ret< %~1= (BusTypeUfs) (Ufs)| exit
  117.         ^ifex $%%%~1%%=0x14, team set-ret< %~1= (BusTypeMax) (MAX)| exit
  118.         ^ifex $%%%~1%%=0x7F, team set-ret< %~1= (BusTypeMaxReserved) (Microsoft Reserved)| exit
  119. _end








复制代码


点评

这个应该是没有。 新版 PECMD-磁盘序列号-ShowCn-LISTFont2.7z 修正了  详情 回复 发表于 3 天前
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-31 08:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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