无忧启动论坛

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

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

    [复制链接]
14761#
发表于 2019-12-17 12:21:55 | 只看该作者
  1. CALL $--ret:&&h  &&MemVar,-LoadLibrary,User32.dll
  2. CALL $--ret:&&hdc user32.dll,GetDC,#0
  3. MESS. <%&&h%><%&&hdc%>
复制代码


请教这里怎么用%&&h%这个DLL的句柄调用GetDC这个API。帮助文档里没有具体的格式说明

点评

CALL $--ret:&&h &&MemVar,-LoadLibrary,User32.dll CALL $--ret:&&hdc *%&h%,GetDC,#0 MESS. [attachimg]407267[/attachimg] 前段时间整的 内存DLL。 其句柄, 前面是2个* CALL $--ret:&&hdc **%&h%,Ge  详情 回复 发表于 2019-12-17 12:30
回复

使用道具 举报

14762#
 楼主| 发表于 2019-12-17 12:30:53 | 只看该作者
红毛樱木 发表于 2019-12-17 12:21
请教这里怎么用%&&h%这个DLL的句柄调用GetDC这个API。帮助文档里没有具体的格式说明

CALL $--ret:&&h  &&MemVar,-LoadLibrary,User32.dll
CALL $--ret:&&hdc *%&h%,GetDC,#0
MESS. <%&&h%><%&&hdc%>



前段时间整的 内存DLL。 其句柄, 前面是2个*
CALL $--ret:&&hdc  **%&h%,GetDC,#0

点评

内置DLL用2个* 外置的DLL用1个* 对吧?  详情 回复 发表于 2019-12-17 12:44
回复

使用道具 举报

14763#
发表于 2019-12-17 12:44:11 | 只看该作者
mdyblog 发表于 2019-12-17 12:30
CALL $--ret:&&h  &&MemVar,-LoadLibrary,User32.dll
CALL $--ret:&&hdc *%&h%,GetDC,#0
MESS.

内置DLL用2个*
外置的DLL用1个*然后那个#也不需要
对吧?

点评

文档和程序对不上了。 DLL上 统一了下。 PECMD_CALLDLL.7z: https://www.lanzous.com/i831xfa ┃CALL $--ret:返回名 ,-LoadLibrary,加载DLL路径 //加载DLL得到句柄 ┃ ┃CALL $  详情 回复 发表于 2019-12-17 16:10
回复

使用道具 举报

14764#
 楼主| 发表于 2019-12-17 16:10:14 | 只看该作者
红毛樱木 发表于 2019-12-17 12:44
内置DLL用2个*
外置的DLL用1个*然后那个#也不需要
对吧?

文档和程序对不上了。

DLL上 统一了下。
PECMD_CALLDLL.7z: https://www.lanzous.com/i831xfa
┃CALL $--ret:返回名 ,-LoadLibrary,加载DLL路径                              //加载DLL得到句柄 ┃
┃CALL $--ret:返回名 &&DllMemVar,-LoadLibrary,*[文件名]#资源号[|类别]   //加载内存DLL得到句柄 ┃
┃CALL $--ret:返回名 ,-GetProcAddress,句柄|*内存DLL句柄,函数名称             //取得函数的地址 ┃
┃CALL $[--ret:返回名] ,-FreeLibrary,句柄|*内存DLL句柄                          //释放DLL句柄 ┃



注意, 整理后, FreeLibrary,*内存DLL句柄  是一个*, (当然多个*也无妨)。  





点评

帮助文档里少一个这个类型的说明 用DLL的句柄调用函数 CALL $--ret:&&hdc **%&h%,GetDC,#0  详情 回复 发表于 2019-12-17 16:31
回复

使用道具 举报

14765#
发表于 2019-12-17 16:31:40 | 只看该作者
mdyblog 发表于 2019-12-17 16:10
文档和程序对不上了。

DLL上 统一了下。

帮助文档里少一个这个类型的说明
用DLL的句柄调用函数
CALL $--ret:&&hdc  **%&h%,GetDC,#0

点评

┃ │备注│※DLL路径: 可以是 *句柄 或 **内存DLL句柄 ┃  详情 回复 发表于 2019-12-17 16:54
回复

使用道具 举报

14766#
 楼主| 发表于 2019-12-17 16:53:25 | 只看该作者
本帖最后由 mdyblog 于 2019-12-17 16:57 编辑
2012bear1alex1 发表于 2018-11-19 12:41
請問一下,下方這兩段代碼的差異??
KILL *explorer explorer.exe
Shel %SystemRoot%\explorer.exe


PE上没有差别。



在 正常系统:
KILL *explorer explorer.exe

*explorer 告诉系统, 不是 桌面崩溃了。
window 不会自动再启动 explorer.exe

PE上 不理会这个参数,总是会在500ms后检查重启explorer。如果后面手动启动了,也不会重复启动explorer。
回复

使用道具 举报

14767#
 楼主| 发表于 2019-12-17 16:54:46 | 只看该作者
红毛樱木 发表于 2019-12-17 16:31
帮助文档里少一个这个类型的说明
用DLL的句柄调用函数
CALL $--ret:&&hdc  **%&h%,GetDC,#0

┃    │备注│※DLL路径: 可以是 *句柄 或  **内存DLL句柄                                                   ┃

点评

收到。  发表于 2019-12-17 16:57
回复

使用道具 举报

14768#
发表于 2019-12-17 19:47:04 | 只看该作者

为何我PECMD.INI经过CMPS还是得到0KB的目标档案?

点评

D:\PECMD.ini 压缩 成 C:\PECMD.INI ------------------------------ start /w PECMD CMPS D:\PECMD.ini C:\PECMD.INI  详情 回复 发表于 2019-12-17 21:52
因为你的文件编码不正确  详情 回复 发表于 2019-12-17 20:02
回复

使用道具 举报

14769#
发表于 2019-12-17 20:02:05 | 只看该作者
2012bear1alex1 发表于 2019-12-17 19:47
为何我PECMD.INI经过CMPS还是得到0KB的目标档案?

因为你的文件编码不正确
回复

使用道具 举报

14770#
发表于 2019-12-17 20:06:50 | 只看该作者
本帖最后由 2012bear1alex1 于 2019-12-17 20:17 编辑
caocaofff 发表于 2019-12-17 20:02
因为你的文件编码不正确

了解了,感谢您
回复

使用道具 举报

14771#
 楼主| 发表于 2019-12-17 21:52:50 | 只看该作者
2012bear1alex1 发表于 2019-12-17 19:47
为何我PECMD.INI经过CMPS还是得到0KB的目标档案?

   D:\PECMD.ini  压缩 成  C:\PECMD.INI
------------------------------
start /w  PECMD  CMPS   D:\PECMD.ini   C:\PECMD.INI

点评

老大感谢您,我找到问题了,问题是编码导致的  详情 回复 发表于 2019-12-17 22:16
回复

使用道具 举报

14772#
发表于 2019-12-17 22:16:38 | 只看该作者
mdyblog 发表于 2019-12-17 21:52
D:\PECMD.ini  压缩 成  C:\PECMD.INI
------------------------------
start /w  PECMD  CMPS   D: ...

老大感谢您,我找到问题了,问题是编码导致的

点评

什么编码 会出这样的问题?  详情 回复 发表于 2019-12-17 22:20
回复

使用道具 举报

14773#
 楼主| 发表于 2019-12-17 22:20:40 | 只看该作者
2012bear1alex1 发表于 2019-12-17 22:16
老大感谢您,我找到问题了,问题是编码导致的

什么编码 会出这样的问题?

点评

发现一个问题 窗口蒙版和微软新的DPIv2可能有冲突,代码已PM,老大有空看下是不是BUG,是不是需要适配一下。  详情 回复 发表于 2019-12-18 01:27
ANSI正常,UTF-8異常  详情 回复 发表于 2019-12-17 22:44
回复

使用道具 举报

14774#
发表于 2019-12-17 22:44:29 | 只看该作者
mdyblog 发表于 2019-12-17 22:20
什么编码 会出这样的问题?

ANSI正常,UTF-8異常

UTF8.JPG (9.81 KB, 下载次数: 427)

UTF8.JPG

ANSI.JPG (10.42 KB, 下载次数: 402)

ANSI.JPG

点评

支持 没有BOM的UTF8PECMD-UTF8.7z: https://www.lanzous.com/i83gcsh  详情 回复 发表于 2019-12-18 01:34
用utf-8带bom的  详情 回复 发表于 2019-12-17 23:06
回复

使用道具 举报

14775#
发表于 2019-12-17 23:06:39 来自手机 | 只看该作者
2012bear1alex1 发表于 2019-12-17 22:44
ANSI正常,UTF-8異常

用utf-8带bom的
回复

使用道具 举报

14776#
发表于 2019-12-18 01:27:59 | 只看该作者
mdyblog 发表于 2019-12-17 22:20
什么编码 会出这样的问题?

发现一个问题
窗口蒙版和微软新的DPIv2可能有冲突,代码已PM,老大有空看下是不是BUG,是不是需要适配一下。
回复

使用道具 举报

14777#
 楼主| 发表于 2019-12-18 01:34:53 | 只看该作者

支持 没有BOM的UTF8PECMD-UTF8.7z: https://www.lanzous.com/i83gcsh

点评

既然cmps都能自动支持无bom了,那让read也支持呗,应该小意思吧?  详情 回复 发表于 2019-12-18 10:05
感谢老大的帮助,请问 1.目前最新的版本就是V201201.88.05.82 X64Stable-180148测试.7z吗?我看他发布日期距今有点长远 2.以后您的更新版本也会有没BOM的吗?  详情 回复 发表于 2019-12-18 08:00
回复

使用道具 举报

14778#
发表于 2019-12-18 08:00:29 | 只看该作者
mdyblog 发表于 2019-12-18 01:34
支持 没有BOM的UTF8PECMD-UTF8.7z: https://www.lanzous.com/i83gcsh

感谢老大的帮助,请问
1.目前最新的版本就是V201201.88.05.82 X64Stable-180148测试.7z吗?我看他发布日期距今有点长远
2.以后您的更新版本也会有没BOM的吗?

点评

这个功能会一致保留的。  详情 回复 发表于 2019-12-18 11:18
回复

使用道具 举报

14779#
发表于 2019-12-18 10:05:35 | 只看该作者
mdyblog 发表于 2019-12-18 01:34
支持 没有BOM的UTF8PECMD-UTF8.7z: https://www.lanzous.com/i83gcsh

既然cmps都能自动支持无bom了,那让read也支持呗,应该小意思吧?

点评

PECMD_CMPS_READ_UTF8.7z : https://www.lanzous.com/i83pvif CMPS 加了 -utf8: 优先用UTF8 READ 支持自动判断UTF8, ANSI优先。  详情 回复 发表于 2019-12-18 12:37
这个有一定的风险。 加上吧。  详情 回复 发表于 2019-12-18 11:24
回复

使用道具 举报

14780#
 楼主| 发表于 2019-12-18 11:18:12 | 只看该作者
本帖最后由 mdyblog 于 2019-12-18 11:23 编辑
2012bear1alex1 发表于 2019-12-18 08:00
感谢老大的帮助,请问
1.目前最新的版本就是V201201.88.05.82 X64Stable-180148测试.7z吗?我看他发布日 ...

这个功能会一致保留的。
这个功能 有一定风险哦, 虽然很低。
有限用 ANSI/GBK ,失败就尝试 UTF8。
如果该文本用ANSI/GBK 也可以不返回错误, 但实际上 可能是转为火星文了(内容变了)。
还是 带个BOM吧。 建议用UNICODE(默认就带BOM)。

这样吧, 加个 开关 -utf8 。UTF8优先。
回复

使用道具 举报

14781#
 楼主| 发表于 2019-12-18 11:24:24 | 只看该作者
527104427 发表于 2019-12-18 10:05
既然cmps都能自动支持无bom了,那让read也支持呗,应该小意思吧?

这个有一定的风险---可能变成火星文。
加上吧。
回复

使用道具 举报

14782#
 楼主| 发表于 2019-12-18 12:37:36 | 只看该作者
527104427 发表于 2019-12-18 10:05
既然cmps都能自动支持无bom了,那让read也支持呗,应该小意思吧?

PECMD_CMPS_READ_UTF8.7z :   https://www.lanzous.com/i83pvif
CMPS 加了 -utf8: 优先用UTF8
READ 支持自动判断UTF8, ANSI优先。

点评

好的,晚上试试  详情 回复 发表于 2019-12-18 12:50
回复

使用道具 举报

14783#
发表于 2019-12-18 12:50:05 | 只看该作者
mdyblog 发表于 2019-12-18 12:37
PECMD_CMPS_READ_UTF8.7z :   https://www.lanzous.com/i83pvif
CMPS 加了 -utf8: 优先用UTF8
READ 支 ...

好的,晚上试试
回复

使用道具 举报

14784#
发表于 2019-12-18 20:14:58 | 只看该作者
请问 DISK 命令对于高版本的 Win10 PE(如 LTSC) 是否失效了? 抑或是命令参数使用有误?
例如我不想挂载硬盘上的 EFI 分区, 我在 PECMD.INI 脚本靠前的位置添加了以下命令:
DISK ,,,4,U:
但 PE 启动后, 硬盘上的 EFI 分区还是被挂载了

点评

加个参数试试 -skiptp:0xEF DISK -skiptp:0xEF ,,,4,U:  详情 回复 发表于 2019-12-18 20:50
回复

使用道具 举报

14785#
 楼主| 发表于 2019-12-18 20:50:04 | 只看该作者
Bluebells 发表于 2019-12-18 20:14
请问 DISK 命令对于高版本的 Win10 PE(如 LTSC) 是否失效了? 抑或是命令参数使用有误?
例如我不想挂载硬盘 ...

加个参数试试
-skiptp:0xEF

DISK  -skiptp:0xEF   ,,,4,U:

点评

经测试, 还是会自动挂载磁盘的 EFI 分区 [attachimg]407406[/attachimg]  详情 回复 发表于 2019-12-18 22:09
回复

使用道具 举报

14786#
发表于 2019-12-18 22:09:20 | 只看该作者
mdyblog 发表于 2019-12-18 20:50
加个参数试试
-skiptp:0xEF

经测试, 还是会自动挂载磁盘的 EFI 分区

点评

能确认不是别的软件 挂载的 吗?  详情 回复 发表于 2019-12-18 22:11
回复

使用道具 举报

14787#
 楼主| 发表于 2019-12-18 22:11:21 | 只看该作者
本帖最后由 mdyblog 于 2019-12-18 22:12 编辑
Bluebells 发表于 2019-12-18 22:09
经测试, 还是会自动挂载磁盘的 EFI 分区

能确认不是别的软件  挂载的 吗?
注释掉这行, EFI分区还会挂载吗?


这个EFI所在的 盘, 是 GPT 还是 MBR 的盘。

点评

上次我反馈过类似的问题,F模式的移动硬盘,init U之后,mbr或者gpt的esp分区都会显示出来的。  详情 回复 发表于 2019-12-18 22:23
Win10PE 默认情况会挂载 EFI 分区和恢复分区 第三方软件除了 PENetwork 设置为跟随系统启动, 其它都是手动运行  详情 回复 发表于 2019-12-18 22:18
回复

使用道具 举报

14788#
发表于 2019-12-18 22:18:07 | 只看该作者
本帖最后由 Bluebells 于 2019-12-18 22:23 编辑
mdyblog 发表于 2019-12-18 22:11
能确认不是别的软件  挂载的 吗?注释掉这行, EFI分区还会挂载吗?

Win10PE 默认情况会挂载 EFI 分区和恢复分区
第三方软件除了 PENetwork 设置为跟随系统启动, 其它都是手动运行

忘了反馈 pecmd_ful.exe 在基于 LTSC 之后版本的 Win10PE 会失效, 低于该版本号的 Win10PE 则正常

点评

既然是Windows自己挂的。 那就先把他卸载了吧 //卸载 EFI MSR _SUB RemoveEFI TEAM PART LIST disk ,&&dsks FORX * %&dsks%,&&dsk, { PART LIST part %&dsk%,&prts FORX * %&prts%,&&prt,  详情 回复 发表于 2019-12-18 22:51
Win10PE 默认情况会挂载 EFI 分区和恢复分区 ------------------------- 那就是说, 是windows10自己挂载的。 和 DISK 命令无关。  详情 回复 发表于 2019-12-18 22:33
回复

使用道具 举报

14789#
发表于 2019-12-18 22:23:16 来自手机 | 只看该作者
mdyblog 发表于 2019-12-18 22:11
能确认不是别的软件  挂载的 吗?
注释掉这行, EFI分区还会挂载吗?


上次我反馈过类似的问题,F模式的移动硬盘,init U之后,mbr或者gpt的esp分区都会显示出来的。

点评

这个应该是Windows自己的事。 INIT 代码 自己不干这些事。  详情 回复 发表于 2019-12-18 22:54
回复

使用道具 举报

14790#
 楼主| 发表于 2019-12-18 22:33:25 | 只看该作者
Bluebells 发表于 2019-12-18 22:18
Win10PE 默认情况会挂载 EFI 分区和恢复分区
第三方软件除了 PENetwork 设置为跟随系统启动, 其它都是手 ...

Win10PE 默认情况会挂载 EFI 分区和恢复分区
-------------------------
那就是说, 是windows10自己挂载的。
和 DISK 命令无关。

点评

抱歉! 我以为 DISK 命令可以使系统不自动挂载 EFI 分区, 是我理解错了~ "PECMD2012.1.88.05.82Stable-180148测试"的 DLL 版中的所有可执行文件在 17763 以上版本的 Win10 PE 中全部失效  详情 回复 发表于 2019-12-18 22:59
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-21 05:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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