无忧启动论坛

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

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

    [复制链接]
13141#
发表于 2017-8-29 09:54:07 来自手机 | 只看该作者
mdyblog 发表于 2017-8-29 09:33
红大:
请问下, 你知道 WIn10 那个开始菜单的 “附到「开始」菜单”    “从「开始」菜单解”
在哪 ...

我上次研究的是从pint说明文档里得到的启发。shell32.dll.mui里的对应字符串。8pe用的是7的explorer.exe,所以这么折腾了一下,但是效果不太好,对比7和8里的shell32.dll.mui,补充字符串以后的结果。
后面10pe用的是第三方开始菜单,我用的是pint命令的右键菜单功能实现的。

点评

我下载你的USB维护版。 10pex86 的 Pint 到开始菜单为:固定到「开始」屏幕(P) (stat10) 但是 zh-CN\shell32.dll.mui中没找到这个串。shell32.dll中也没找到这个串。 10pex64 的 Pint 到开始菜单为:Pin to S  详情 回复 发表于 2017-8-29 18:56
回复

使用道具 举报

13142#
发表于 2017-8-29 09:58:38 | 只看该作者
按sp_star的说法,后面的版本限制只有explorer才允许PINT类开始菜单操作。所以PECMD改名后PINT就有效了。

前面已经说了用10240是可以的,后面的版本如15063就不行了,可以下我最新的版本试验。
回复

使用道具 举报

13143#
 楼主| 发表于 2017-8-29 11:23:26 | 只看该作者
hhh333 发表于 2017-8-29 09:51
测试了最新版,在15063中PINT无效。

无效的是任务栏还是开始菜单。

点评

我猜是开始菜单,他用的第三方开始菜单和我的不一样  详情 回复 发表于 2017-8-29 14:38
回复

使用道具 举报

13144#
发表于 2017-8-29 14:38:20 来自手机 | 只看该作者
mdyblog 发表于 2017-8-29 11:23
无效的是任务栏还是开始菜单。

我猜是开始菜单,他用的第三方开始菜单和我的不一样
回复

使用道具 举报

13145#
发表于 2017-8-29 15:23:57 | 只看该作者
本帖最后由 hhh333 于 2017-8-29 15:27 编辑
  1. `W7/8/10中常用程序pint到开始菜单
  2. _SUB NT6_PINT
  3. PINT %WS%\cmd.exe,StartMenu
  4. PINT %W%\regedit.exe,StartMenu
  5. `PINT %W%\regedit.exe,附到「开始」菜单(&U)
  6. PINT %W%\EXPLORER.EXE,TaskBand
  7. PINT %Programs%\设置临时文件.lnk,TaskBand
  8. `IFEX %W%\OrderDrv\EXPLORER.EXE,FILE %W%\OrderDrv\EXPLORER.EXE
  9. _END
复制代码


以上语句,好像都无效,前面是用如下语句解决的。
  1. `W7/8/10中常用程序pint到开始菜单
  2. _SUB NT6_PINT
  3. %PtoE% PINT %WS%\cmd.exe,StartMenu
  4. %PtoE% PINT %W%\regedit.exe,StartMenu
  5. `PINT %W%\regedit.exe,附到「开始」菜单(&U)
  6. %PtoE% PINT %W%\EXPLORER.EXE,TaskBand
  7. %PtoE% PINT %Programs%\设置临时文件.lnk,TaskBand
  8. `IFEX %W%\OrderDrv\EXPLORER.EXE,FILE %W%\OrderDrv\EXPLORER.EXE
  9. _END


  10. `为解决W10 15063及以后的版本PINT异常和重定向分辨率(预置一个系统变量PtoE后续可以引用)
  11. FIND $%BootOS%=W10,IFEX %WS%\winsrvext.dll,
  12. {
  13.         FILE %WS%\PECMD.EXE=>%W%\OrderDrv\EXPLORER.EXE
  14.         ENVI $PtoE=EXEC =*%W%\OrderDrv\EXPLORER.EXE
  15.         CALL SCRRN
  16. }
复制代码

点评

实测PECMD.INI 中也可以。 下面是改好的PECMD.INI(关键点要去掉%PToE%, 或者在该函数开始加ENIV^ EnviMode=1): 效果,任务栏和开始菜单上都有了PINT的效果:  详情 回复 发表于 2017-8-29 22:06
回复

使用道具 举报

13146#
 楼主| 发表于 2017-8-29 18:33:47 | 只看该作者
本帖最后由 mdyblog 于 2017-8-29 18:57 编辑
hhh333 发表于 2017-8-29 09:51
测试了最新版,在15063中PINT无效。


下载你最新的PE航母。测试WIn10PE都正常。 PINT 到任务栏和开始菜单都正常。
我没有修改PECMD.INI ,而是命令如图的命令测试。

注意前面包中的4个文件都要(对你的PE,什么都不用改,直接解压即可),不能只拿一个PECMD.EXE.4文件:
PECMD.EXE
PECMD.EXE.DIR\EXPORER.EXE
PECMD.EXE.ToStartMenu
PECMD.EXE.FromStartMenu
核心文件
就是上面的PECMD.EXE拷贝一份,改名,冒充EXPORER.EXE 。 PECMD自动调用这个文件来设置
存储开始菜单 字符串的两文件。 不需要全,前面几个关键的字符即可
     

win10-32效果:

win10-64效果:

回复

使用道具 举报

13147#
 楼主| 发表于 2017-8-29 18:56:58 | 只看该作者
本帖最后由 mdyblog 于 2017-8-29 19:04 编辑
红毛樱木 发表于 2017-8-29 09:54
我上次研究的是从pint说明文档里得到的启发。shell32.dll.mui里的对应字符串。8pe用的是7的explorer.exe ...


我下载你的USB维护版。
10pex86 的 Pint 到开始菜单为:固定到「开始」屏幕(P) (stat10)
但是 zh-CN\shell32.dll.mui中没找到这个串。shell32.dll中也没找到这个串。


10pex64 的 Pint 到开始菜单为:Pin to Start (Start10)
但是 zh-CN\shell32.dll.mui中没找到这个串。shell32.dll中也没找到这个串。

WInHex Unicode和ANSI都找不到这个串。

请问怎么找到他们?


点评

这个不是shell32.dll.mui中的。是装完那个第三方开始菜单就有右键信息了。  详情 回复 发表于 2017-8-29 20:26
回复

使用道具 举报

13148#
发表于 2017-8-29 20:26:07 来自手机 | 只看该作者
mdyblog 发表于 2017-8-29 18:56
我下载你的USB维护版。
10pex86 的 Pint 到开始菜单为:固定到「开始」屏幕(P) (stat10)
但是 zh-CN\ ...

这个不是shell32.dll.mui中的。是装完那个第三方开始菜单就有右键信息了。

点评

请问,你那个维护版USM,直接启动后有右键信息,右键能品到开始菜单。 此时这个菜单串在哪个DLL或MUI中,怎么找?  详情 回复 发表于 2017-8-29 20:36
回复

使用道具 举报

13149#
 楼主| 发表于 2017-8-29 20:36:05 | 只看该作者
红毛樱木 发表于 2017-8-29 20:26
这个不是shell32.dll.mui中的。是装完那个第三方开始菜单就有右键信息了。

请问,你那个维护版USM,直接启动后有右键信息,右键能品到开始菜单。
此时这个菜单串在哪个DLL或MUI中,怎么找?

点评

我没仔细找过,应该在注册表里能追查到位置。 文件右键关联里,你看看hkcr/*这里有没有,追查一下。这几天用不了电脑,帮不上你  详情 回复 发表于 2017-8-29 22:02
回复

使用道具 举报

13150#
发表于 2017-8-29 22:02:15 来自手机 | 只看该作者
本帖最后由 红毛樱木 于 2017-8-29 22:04 编辑
mdyblog 发表于 2017-8-29 20:36
请问,你那个维护版USM,直接启动后有右键信息,右键能品到开始菜单。
此时这个菜单串在哪个DLL或MUI中 ...


我没仔细找过,应该在注册表里能追查到位置。
文件右键关联里,你看看hkcr/*这里有没有,追查一下。这几天用不了电脑,帮不上你。
第三方开始菜单程序在x盘的pr目录里。
回复

使用道具 举报

13151#
 楼主| 发表于 2017-8-29 22:06:00 | 只看该作者
hhh333 发表于 2017-8-29 15:23
以上语句,好像都无效,前面是用如下语句解决的。

实测PECMD.INI 中也可以。
下面是改好的PECMD.INI(关键点要去掉%PToE%, 或者在该函数开始加ENIV^ EnviMode=1):
H3.PECMD.INI.zip (8.13 KB, 下载次数: 11)

效果,任务栏和开始菜单上都有了PINT的效果:



新版,又简化了,H3的这个PE可以不要 PECMD.EXE.ToStartMenu 和 PECMD.EXE.FromStartMenu
内部有默认值,H3的恰好是默认值。
默认值分别为:
附到「开始」菜单
从「开始」菜单解

简化有默认值的版本:
PECMD32-PINT_W10.rar (975.04 KB, 下载次数: 11)
PECMD64-PINT_W10.rar (1.06 MB, 下载次数: 19)

点评

你这个的核心是不是还是复制一个文件为explorer.exe  详情 回复 发表于 2017-8-30 16:57
回复

使用道具 举报

13152#
发表于 2017-8-30 16:57:09 | 只看该作者
本帖最后由 hhh333 于 2017-8-30 17:00 编辑
mdyblog 发表于 2017-8-29 22:06
实测PECMD.INI 中也可以。
下面是改好的PECMD.INI(关键点要去掉%PToE%, 或者在该函数开始加ENIV^ Envi ...


你这个的核心是不是还是复制一个文件为explorer.exe。
如果不需要这一步那就算真正掌握了控制权,或者能够欺骗绕过。

如果这样可不可以在内存中复制这个文件,用到PINT时就做这个事,这样对用户来说是透明的。

点评

现在对用户也是透明的。 PECMD.INI 还是如XP一样的操作。  详情 回复 发表于 2017-8-30 17:08
回复

使用道具 举报

13153#
 楼主| 发表于 2017-8-30 17:08:22 | 只看该作者
hhh333 发表于 2017-8-30 16:57
你这个的核心是不是还是复制一个文件为explorer.exe。
如果不需要这一步那就算真正掌握了控制权,或者 ...

现在对用户也是透明的。 PECMD.INI 还是如XP一样的操作。

点评

问题是要双份的文件复制进内核,实际上可以在内存中处理,让用户感觉不到要两个文件配合的  详情 回复 发表于 2017-8-30 17:16
回复

使用道具 举报

13154#
发表于 2017-8-30 17:16:52 | 只看该作者
本帖最后由 hhh333 于 2017-8-30 17:18 编辑
mdyblog 发表于 2017-8-30 17:08
现在对用户也是透明的。 PECMD.INI 还是如XP一样的操作。


问题是要双份的文件复制进内核,实际上可以在内存中处理,让用户感觉不到要两个文件配合的。
当然更彻底的办法就是让pecmd拥有explorer的权限。

点评

问题是要双份的文件复制进内核, ------------------- WIM中好像自动压缩,实际存储的是1份。 如果不是WIM而是NTFS文件系统,可以建立符号链接。实际存储的也是1份。  详情 回复 发表于 2017-8-31 16:58
让用户感觉不到要两个文件配合的. ---------------------------- 那是不是也需要一个标志文件。使得允许这样操作。 这是因为后续的版本也许不需要这样处理,或者某个大牛的版本,不需要这么处理。 没有这个标志  详情 回复 发表于 2017-8-31 11:24
回复

使用道具 举报

13155#
 楼主| 发表于 2017-8-31 11:24:39 | 只看该作者
hhh333 发表于 2017-8-30 17:16
问题是要双份的文件复制进内核,实际上可以在内存中处理,让用户感觉不到要两个文件配合的。
当然更彻 ...

让用户感觉不到要两个文件配合的.
----------------------------
那是不是也需要一个标志文件。使得允许这样操作。
这是因为后续的版本也许不需要这样处理,或者某个大牛的版本,不需要这么处理。
没有这个标志,PECMD就不这样操作。

点评

这样算了,按你的,不改内核,只改PECMD.INI。如果需要处理就在PECMD.INI所在位置建立PECMD.EXE.Dir\explorer.exe。也就是说只要有PECMD.EXE.Dir\explorer.exe存在就按此方式处理PINT。 这都不好。要么不处  详情 回复 发表于 2017-8-31 15:49
回复

使用道具 举报

13156#
发表于 2017-8-31 15:49:47 | 只看该作者
mdyblog 发表于 2017-8-31 11:24
让用户感觉不到要两个文件配合的.
----------------------------
那是不是也需要一个标志文件。使得允 ...

这样算了,按你的,不改内核,只改PECMD.INI。如果需要处理就在PECMD.INI所在位置建立PECMD.EXE.Dir\explorer.exe。也就是说只要有PECMD.EXE.Dir\explorer.exe存在就按此方式处理PINT。

  1. FIND $%BootOS%=W10,IFEX %WS%\winsrvext.dll,
  2. {
  3.         PATH %curdir%\pecmd.exe.dir
  4.         FILE PECMD.EXE=>pecmd.exe.dir\EXPLORER.EXE
  5.         CALL SCRRN
  6. }
复制代码



这都不好。要么不处理,由我们来处理,就象前面一样,我们自己复制自己改代码。
要么就彻底处理,可以给PINT加一个参数,或者给ENVI ^加个参数,凡是加了这个参数的就代表要特殊处理PINT。包括建立pecmd.exe.dir\EXPLORER.EXE等过程都不用操心,由程序完成。

点评

我说的这张方法,就是不改PECMD.INI,下载的有些PECMD.INI是加密的,也无法修改。 这就是将PECMD.EXE 和 PECMD.EXE.DIR\Explorer.exe一起放到WIM中。就可以了。 不用改任何代码。  详情 回复 发表于 2017-8-31 17:57
pint 问题,其实真不用管,知道怎么处理就可以了 在哪里放改名的PECMD都无所谓,PECMD.INI里面, 路径写对就行  详情 回复 发表于 2017-8-31 16:53
回复

使用道具 举报

13157#
发表于 2017-8-31 16:53:34 | 只看该作者
hhh333 发表于 2017-8-31 15:49
这样算了,按你的,不改内核,只改PECMD.INI。如果需要处理就在PECMD.INI所在位置建立PECMD.EXE.Dir\expl ...

pint 问题,其实真不用管,知道怎么处理就可以了
在哪里放改名的PECMD都无所谓,PECMD.INI里面, 路径写对就行
回复

使用道具 举报

13158#
 楼主| 发表于 2017-8-31 16:58:47 | 只看该作者
hhh333 发表于 2017-8-30 17:16
问题是要双份的文件复制进内核,实际上可以在内存中处理,让用户感觉不到要两个文件配合的。
当然更彻 ...

问题是要双份的文件复制进内核,
-------------------
WIM中好像自动压缩,实际存储的是1份。

如果不是WIM而是NTFS文件系统,可以建立符号链接。实际存储的也是1份。
回复

使用道具 举报

13159#
 楼主| 发表于 2017-8-31 17:57:58 | 只看该作者
本帖最后由 mdyblog 于 2017-8-31 18:11 编辑
hhh333 发表于 2017-8-31 15:49
这样算了,按你的,不改内核,只改PECMD.INI。如果需要处理就在PECMD.INI所在位置建立PECMD.EXE.Dir\expl ...


我说的这张方法,就是不改PECMD.INI,下载的有些PECMD.INI是加密的,也无法修改。
这就是将PECMD.EXE 和 PECMD.EXE.DIR\Explorer.exe一起放到WIM中。就可以了。
不用改任何代码。

对写PECMD.INI来说,完全是透明的,就想是正常的Win7PE一样。PECMD.INI中也不用COPy  EXPLORER.EXE
回复

使用道具 举报

13160#
发表于 2017-8-31 21:46:30 | 只看该作者
为了pint去改内置代码感觉不合适。。感觉M大这样处理很好,在WIM启动的PE中二份文件其实也只占一个文件的空间。
回复

使用道具 举报

13161#
 楼主| 发表于 2017-9-1 20:56:20 | 只看该作者
MENU 可换列

点评

menu换列,能否举个例子?  详情 回复 发表于 2017-9-2 10:56
回复

使用道具 举报

13162#
发表于 2017-9-2 10:56:10 | 只看该作者

menu换列,能否举个例子?

点评

#!PECMD //CALL --popmenu:10.10 MyMenu1 CALL @--popmenu MyMenu1 _SUB MyMenu1 MENU Menu1,分辨率1024X768 颜色32位 刷新率60,DISP W1024H768B32F60 MENU Menu2,【动态】分辨率1024X768 颜  详情 回复 发表于 2017-9-2 11:08
回复

使用道具 举报

13163#
 楼主| 发表于 2017-9-2 11:08:26 | 只看该作者
489432757 发表于 2017-9-2 10:56
menu换列,能否举个例子?


#!PECMD
//CALL --popmenu:10.10 MyMenu1
CALL @--popmenu       MyMenu1

_SUB MyMenu1
    MENU Menu1,分辨率1024X768 颜色32位 刷新率60,DISP W1024H768B32F60
    MENU Menu2,【动态】分辨率1024X768 颜色16位 刷新率60,DISP W1024H768B16F60
    MENU -
    MENU Menu3,分辨率800X600  颜色16位 刷新率60,DISP W800H600B16F60,0x20
_END

回复

使用道具 举报

13164#
发表于 2017-9-2 13:47:22 | 只看该作者
本帖最后由 huaqingyuan 于 2017-9-2 13:53 编辑
mdyblog 发表于 2017-7-24 20:39
要设置下,EN_CHANGE

SET ::EN_CHANGE=0x0300


SET &::EN_CHANGE=0x0300
SET &::EN_UPDATE=0x400
SET  ::WM_COMMAND=0x0111

CALL a

_SUB a,W334H94,
     EDIT -3D  b,L23T21W280H22,,,0x100
     ENVI @b.ID=?;b_ID
     //ENVI @this.MSG=_COMMAND#%b_ID%#%&EN_CHANGE%::&wp,&lp, MESS 值已改变
    ENVI @this.MSG=_COMMAND#%b_ID%#%EN_UPDATE%::&wp,&lp,  @TEAM CALC I=%I%+1| ENVI @this=%I%值已改变%b% %wp% %lp% %b_ID%
_END

%B% 的值是上一次的值,


EDIT -3D -rich b,L23T21W280H22,,,0x100
%B% 的值是本次的值,,这里是不是需要修改一下!

点评

由于你 拦截了 中间消息,此时PECMD流程还没完成。所以变量还没更新。 可以 POSTMSG转下,让PECMD走完再处理。 ENVI^ ForceLocal=1 SET ::EN_CHANGE=0x0300 SET &::EN_CHANGE=0x0300 SET &::EN_UPDATE=  详情 回复 发表于 2017-9-2 13:59
回复

使用道具 举报

13165#
 楼主| 发表于 2017-9-2 13:59:06 | 只看该作者
本帖最后由 mdyblog 于 2017-9-2 14:05 编辑
huaqingyuan 发表于 2017-9-2 13:47
SET &::EN_CHANGE=0x0300
SET &::EN_UPDATE=0x400
SET  ::WM_COMMAND=0x0111


由于你 拦截了 中间消息,此时PECMD流程还没完成。所以变量还没更新。
可以 POSTMSG转下,让PECMD走完再处理。

ENVI^ ForceLocal=1

SET ::EN_CHANGE=0x0300


SET &::EN_CHANGE=0x0300
SET &::EN_UPDATE=0x400
SET  ::WM_COMMAND=0x0111

CALL a

_SUB a,W634H94,
     EDIT -3D  b,L23T21W580H22,,,0x100
     ENVI @b.ID=?;b_ID
     //ENVI @this.MSG=_COMMAND#%b_ID%#%&EN_CHANGE%::&wp,&lp, MESS 值已改变
    //ENVI @this.MSG=_COMMAND#%b_ID%#%EN_UPDATE%::&wp,&lp,  @TEAM CALC I=%I%+1| ENVI @this=%I%值已改变%b% %wp% %lp% %b_ID%
    ENVI @this.MSG=_COMMAND#%b_ID%#%EN_UPDATE%::&wp,&lp,  ENVI @this.POSTMSG=#1,%wp%,%lp%
    ENVI @this.MSG=#1::wp,lp,@TEAM CALC I=%I%+1| ENVI @this=%I%值已改变%b% %wp% %lp% %b_ID%
_END

回复

使用道具 举报

13166#
发表于 2017-9-2 14:05:07 | 只看该作者
为何加了 -rich,就没问题呢?

点评

rich是完全不同的控件。 消息机制也不同。 zhishi PECMD吧两个不同的控件绑在一条命令上。  详情 回复 发表于 2017-9-2 14:06
回复

使用道具 举报

13167#
 楼主| 发表于 2017-9-2 14:06:38 | 只看该作者
huaqingyuan 发表于 2017-9-2 14:05
为何加了 -rich,就没问题呢?

rich是完全不同的控件。
消息机制也不同。
zhishi PECMD吧两个不同的控件绑在一条命令上。

点评

明白了,感谢详细解答!  详情 回复 发表于 2017-9-2 14:09
回复

使用道具 举报

13168#
发表于 2017-9-2 14:09:28 | 只看该作者
mdyblog 发表于 2017-9-2 14:06
rich是完全不同的控件。
消息机制也不同。
zhishi PECMD吧两个不同的控件绑在一条命令上。

明白了,感谢详细解答!
回复

使用道具 举报

13169#
发表于 2017-9-2 17:29:06 | 只看该作者
为什么Pecmd变化
HKCU\Control Panel\Desktop,WallPaper,0  (0 => 2)
旁路 (其他 ?)
  1. SHEL %WinDir%\explorer.exe
  2. REGI HKCU\Control Panel\Desktop\WallpaperStyle=0
  3. KILL %WinDir%\explorer.exe
复制代码

点评

想说什么啊?  详情 回复 发表于 2017-9-2 19:31
回复

使用道具 举报

13170#
 楼主| 发表于 2017-9-2 19:31:56 | 只看该作者
2011ChrisR 发表于 2017-9-2 17:29
为什么Pecmd变化
HKCU\Control Panel\Desktop,WallPaper,0  (0 => 2)
旁路 (其他 ?)

想说什么啊?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-23 12:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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