无忧启动论坛

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

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

    [复制链接]
16171#
 楼主| 发表于 2021-11-12 22:35:36 | 只看该作者
Anson4 发表于 2021-11-12 16:41
再请教M大几个问题:
1. 最新版本的PECMD支不支持7z压缩包的解压缩?
就是类似于解压缩CAB压缩包的操作: ...

DEVI *extract 支持Cab
其它 请用第3方程序(7z)
回复

使用道具 举报

16172#
 楼主| 发表于 2021-11-12 22:48:35 | 只看该作者
本帖最后由 mdyblog 于 2021-11-12 22:50 编辑
weconty 发表于 2021-8-6 02:02
如何获取浏览器窗口的 PID 或 WID
%WinDir%\explorer.exe /n,%UserName%\Documents
EXEC -pid:&&PID %Win ...

explorer进程特殊,不一样。
系统只保留一个 进程。
后面创建 后,自动退出。
几后面的那个PID对应的进程实际已经结束了。


find 看看进程号多少。
也可看看  find 该PID号 是否有效切还为explorer
回复

使用道具 举报

16173#
发表于 2021-11-14 15:24:10 | 只看该作者
M大能优化一下WALL命令吗,部分比较精简的PE需要用两次WALL才能设置壁纸成功,这个问题是偶发性的
回复

使用道具 举报

16174#
发表于 2021-11-14 16:38:49 来自手机 | 只看该作者
826773297 发表于 2021-11-14 15:24
M大能优化一下WALL命令吗,部分比较精简的PE需要用两次WALL才能设置壁纸成功,这个问题是偶发性的

没有背景的时候,kill explorer.exe再看看呢?

点评

kill会黑一次。去年我就发现这个问题,发现可以wall后再disp一下也可以,但是最后研究一下,连续使用两次wall是目前最佳解决方法。对于用户来说是无感的  详情 回复 发表于 2021-11-25 10:35
回复

使用道具 举报

16175#
发表于 2021-11-16 06:59:41 | 只看该作者
我看到“单文件制作工具”源码 by 527104427,其中一行关于复选框的:
  1. CHEK &CN,L416T338W108H30,等待所有子进程,TEAM CALL PingPangCheck &CN &CC| CALL @--popmenu SuperWait,-1
复制代码
请问如何修改为默认不勾选?谢谢!

点评

求源码  详情 回复 发表于 2021-11-16 16:01
去掉最后的“-1”  详情 回复 发表于 2021-11-16 11:43
回复

使用道具 举报

16176#
发表于 2021-11-16 11:43:55 | 只看该作者
2010hook 发表于 2021-11-16 06:59
我看到“单文件制作工具”源码 by 527104427,其中一行关于复选框的:
请问如何修改为默认不勾选?谢谢!

去掉最后的“-1”

点评

修改 CALL EnCheck &CN 为 CALL DisCheck &CN 实现了  发表于 2021-11-16 15:47
回复

使用道具 举报

16177#
发表于 2021-11-16 16:01:47 | 只看该作者
2010hook 发表于 2021-11-16 06:59
我看到“单文件制作工具”源码 by 527104427,其中一行关于复选框的:
请问如何修改为默认不勾选?谢谢!

求源码
回复

使用道具 举报

16178#
发表于 2021-11-16 22:37:13 | 只看该作者
希望能够解决7z包中各个子目录共用根目录(或上一级)中cat文件的快速安装问题

点评

CAT复制到各个子目录,不会使 7z文件变大,实际只保存一份的。  详情 回复 发表于 2021-11-20 23:08
回复

使用道具 举报

16179#
发表于 2021-11-17 19:29:50 | 只看该作者
我再提一个问题,大致情况是这样的,如下图:

可见有两个explorer进程,一个是PE系统在启动阶段,由pecmd Main pecmd.ini和SHEL创建的;
另一个是切换到admin时由PECMD.EXE MAIN -user %SystemRoot%\System32\admin.ini语句创立;
因此会出现4个pecmd.exe(有两个是任务栏管弹出的),也即两个PECMD守护两个explorer,一个属于SYSTEM一个属于Administrator。原则上来说,在admini用户下kill explorer应该杀的属于admin的explorer,事实上也确实如此(kill后,system的explorer进程还是存在的),但是admin的pecmd并没有进行守护,桌面就关了,要在任务管理器中手动运行explorer桌面才出来。大概是发现系统中有explorer进程,也不管他是谁的,PECMD就不给与重启,这个显然是不对的,因为当前用户没有explorer,当前用户没有桌面。

又想用find explorer来发现进程,找了半天没发现有什么参数能够指定找属于某个用户的进程,想通过查找没有属于admin的explorer就启动explorer的路线也进行不下去。

因此,目前有两个问题:
1、pecmd应该分用户守护explorer
2、find进程查找功能,应该提供查找属于某用户的进程的选项或开关

点评

好的。  详情 回复 发表于 2021-11-20 23:08
回复

使用道具 举报

16180#
 楼主| 发表于 2021-11-20 23:08:36 | 只看该作者
hhh333 发表于 2021-11-16 22:37
希望能够解决7z包中各个子目录共用根目录(或上一级)中cat文件的快速安装问题

CAT复制到各个子目录,不会使 7z文件变大,实际只保存一份的。
回复

使用道具 举报

16181#
 楼主| 发表于 2021-11-20 23:08:48 | 只看该作者
hhh333 发表于 2021-11-17 19:29
我再提一个问题,大致情况是这样的,如下图:

可见有两个explorer进程,一个是PE系统在启动阶段,由pecm ...

好的。
回复

使用道具 举报

16182#
发表于 2021-11-21 08:47:02 | 只看该作者

我前面的描述还有个小错误,上图中发一个刷新桌面即kill explorer,实际上是两个explorer都kill了,只是system用户的pecmd进行了守护重启了属于它的explorer但Admin用户的没有被守护,因此admin用户没有桌面。因此可能还得配套kill命令,应该象taskkill一样可以杀指定用户的进程,或当前用户的进程。

点评

调试了下。 原因是没有 开动 PECMD 守护。 admin.ini (48行) SHEL -user %WinDir%\explorer.exe 不能注释 对应地, su.ini 切换回来, 要清除相应的 设置: `切回到System _SUB SystemBack //清  详情 回复 发表于 2021-11-26 23:26
弄个 简单的测试演示环境吧。  详情 回复 发表于 2021-11-23 12:21
回复

使用道具 举报

16183#
发表于 2021-11-22 19:19:45 | 只看该作者
M大,反馈一个问题,在dpi自适应的PE里,启动explorer前和启动explorer后SCRN命令获取的屏幕宽高不一致,有办法修复一下吗,在这中间没有进行调整分辨率操作,缩放比都是一样的,区别在于启动了explorer
回复

使用道具 举报

16184#
发表于 2021-11-22 21:35:44 来自手机 | 只看该作者
本帖最后由 红毛樱木 于 2021-11-23 02:21 编辑
826773297 发表于 2021-11-22 19:19
M大,反馈一个问题,在dpi自适应的PE里,启动explorer前和启动explorer后SCRN命令获取的屏幕宽高不一致,有 ...

这个应该需要自己计算的--------------------------
或者单独开一个进程去获取试试。

PECMD.EXE刚启动的时候,可能系统的DPI还没来得及自动处理,这时候就是旧的初始的DPI。
系统初始化完成后(可能explorer加载后),可能DPI自动响应最佳值,这时候DPI可能其实已经变了,用SCRN可能需要自己判断DPI拉伸情况再计算了。

这种情况下用
DISP <?|?*>  [=显示器号] 变量名       //查询当前或全部可能配置,多行,行内TAB分隔
试试呢?

点评

单独开一个pecmd获取正常  详情 回复 发表于 2021-11-23 07:58
回复

使用道具 举报

16185#
发表于 2021-11-23 07:58:29 来自手机 | 只看该作者
红毛樱木 发表于 2021-11-22 21:35
这个应该需要自己计算的--------------------------
或者单独开一个进程去获取试试。


单独开一个pecmd获取正常
回复

使用道具 举报

16186#
 楼主| 发表于 2021-11-23 12:21:19 | 只看该作者
hhh333 发表于 2021-11-21 08:47
我前面的描述还有个小错误,上图中发一个刷新桌面即kill explorer,实际上是两个explorer都kill了,只是s ...

弄个 简单的测试演示环境吧。
回复

使用道具 举报

16187#
发表于 2021-11-23 14:27:19 | 只看该作者
本帖最后由 hhh333 于 2021-11-23 14:29 编辑
mdyblog 发表于 2021-11-23 12:21
弄个 简单的测试演示环境吧。

https://cloud.189.cn/t/i2AZVf2U7Rvq (访问码:4h8d)

win10 32位内核,进入后切换到Admin就可看到我上图的环境,这个时候点右键刷新桌面,则失去桌面。
回复

使用道具 举报

16188#
发表于 2021-11-24 22:22:54 | 只看该作者
请问M大,如果我的程序代理里有一段循环,如何在关闭主程序时也同时退出这个循环体?
我制作了一个exe,始终杀不死主进程,测试时别使用wcs,请使用exe,不然会杀掉所有pecmd进程。

先运行run,再运行kill,关闭窗体后进程还在跑

  1. _SUB Me,W200H140,ME
  2. ITEM ButtonExitWin,L70T3W58H24,Kill me,TEAM ENVI @ButtonExitWin.enable=0|CALL ExitMe
  3. ITEM ButtonStart,L18T3W50H24,Run me,TEAM ENVI @ButtonStart.enable=0|CALL Loop
  4. LABE LabelText,L8T39W136H26,please

  5. _END

  6. _SUB Loop
  7. IFEX :p%&MyName%, {
  8. ENVI @LabelText=Kill me 1
  9. WAIT 1000
  10. ENVI @LabelText=Kill me 2
  11. WAIT 1000
  12. ENVI @LabelText=Kill me 3
  13. WAIT 1000
  14. CALL Loop
  15. }!TEAM EXIT _SUB|CALL ExitMe
  16. _END

  17. _SUB ExitMe
  18. //KILL \%Me%
  19. KILL %&MyName%
  20. EXIT
  21. _END

  22. //MAIN
  23. TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1

  24. CALL @Me
  25. CALL ExitMe
  26. EXIT
复制代码


killme.zip

1.17 MB, 下载次数: 0

点评

用&ExitPid变量传递退出标志,试试,如果不行就多加一个变量判断  详情 回复 发表于 2021-11-25 14:26
等我睡醒给你改个,这个我在行,经常用  详情 回复 发表于 2021-11-25 02:57
_sub Me,W200H140,ME, kill *force *%__pid%  详情 回复 发表于 2021-11-24 22:44
kill *force *%__pid%  详情 回复 发表于 2021-11-24 22:39
回复

使用道具 举报

16189#
发表于 2021-11-24 22:39:50 | 只看该作者
caocaofff 发表于 2021-11-24 22:22
请问M大,如果我的程序代理里有一段循环,如何在关闭主程序时也同时退出这个循环体?
我制作了一个exe,始 ...

kill   *force  *%__pid%

点评

好家伙,强行自杀 (我已经改写这段代码了,不用这种死循环校验方式了  详情 回复 发表于 2021-11-24 23:50
回复

使用道具 举报

16190#
发表于 2021-11-24 22:44:40 | 只看该作者
caocaofff 发表于 2021-11-24 22:22
请问M大,如果我的程序代理里有一段循环,如何在关闭主程序时也同时退出这个循环体?
我制作了一个exe,始 ...

_sub Me,W200H140,ME, kill   *force  *%__pid%
回复

使用道具 举报

16191#
发表于 2021-11-24 23:50:51 | 只看该作者
527104427 发表于 2021-11-24 22:39
kill   *force  *%__pid%

好家伙,强行自杀

(我已经改写这段代码了,不用这种死循环校验方式了
回复

使用道具 举报

16192#
发表于 2021-11-25 02:57:28 来自手机 | 只看该作者
caocaofff 发表于 2021-11-24 22:22
请问M大,如果我的程序代理里有一段循环,如何在关闭主程序时也同时退出这个循环体?
我制作了一个exe,始 ...

等我睡醒给你改个,这个我在行,经常用
回复

使用道具 举报

16193#
发表于 2021-11-25 10:35:20 | 只看该作者
红毛樱木 发表于 2021-11-14 16:38
没有背景的时候,kill explorer.exe再看看呢?

kill会黑一次。去年我就发现这个问题,发现可以wall后再disp一下也可以,但是最后研究一下,连续使用两次wall是目前最佳解决方法。对于用户来说是无感的

点评

wall以后会被explore.exe初始化还原,所以导致黑屏,虽然新版pecmd会自动锁定壁纸,但是有时候虽然锁定成功,桌面没反应过来,还是需要刷新桌面的。 建议这样流程。 启动pe的时候 logo 画布 exec explore.exe e  详情 回复 发表于 2021-11-25 12:10
回复

使用道具 举报

16194#
发表于 2021-11-25 12:10:37 来自手机 | 只看该作者
xiaojinglf 发表于 2021-11-25 10:35
kill会黑一次。去年我就发现这个问题,发现可以wall后再disp一下也可以,但是最后研究一下,连续使用两次 ...

wall以后会被explore.exe初始化还原,所以导致黑屏,虽然新版pecmd会自动锁定壁纸,但是有时候虽然锁定成功,桌面没反应过来,还是需要刷新桌面的。
建议这样流程。
启动pe的时候
logo 画布
exec explore.exe
exec -wait winpeshl.exe
你的代码
wall xxx.bmp
kill explore.exe
shel explore.exe
回复

使用道具 举报

16195#
发表于 2021-11-25 14:26:10 | 只看该作者
caocaofff 发表于 2021-11-24 22:22
请问M大,如果我的程序代理里有一段循环,如何在关闭主程序时也同时退出这个循环体?
我制作了一个exe,始 ...
  1. _SUB Me,W200H140,ME
  2.     ITEM ButtonExitWin,L70T3W58H24,Kill me,TEAM ENVI @ButtonExitWin.enable=0|CALL ExitMe
  3.     ITEM ButtonStart,L18T3W50H24,Run me,TEAM ENVI @ButtonStart.enable=0|CALL Loop
  4.     LABE LabelText,L8T39W136H26,please
  5. _END

  6. _SUB Loop
  7.     FIND $%&ExitPid%=Yes,EXIT
  8.     IFEX :p%&MyName%,
  9.     {
  10.         ENVI @LabelText=Kill me 1
  11.         WAIT 1000
  12.         ENVI @LabelText=Kill me 2
  13.         WAIT 1000
  14.         ENVI @LabelText=Kill me 3
  15.         WAIT 1000
  16.         CALL Loop
  17.     }!  
  18.     {
  19.         EXIT _SUB
  20.         CALL ExitMe
  21.     }
  22. _END

  23. _SUB ExitMe
  24.     //KILL \%Me%
  25.     ENVI &ExitPid=Yes
  26.     KILL %&MyName%
  27.     EXIT
  28. _END

  29. //MAIN
  30. TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1

  31. ENVI &ExitPid=No
  32. CALL @Me
  33. CALL ExitMe
  34. EXIT
复制代码
用&ExitPid变量传递退出标志,试试,如果不行就多加一个变量判断

点评

确实是一种解决办法  详情 回复 发表于 2021-11-25 15:47
回复

使用道具 举报

16196#
发表于 2021-11-25 15:05:15 | 只看该作者
有网友反馈了这样一个问题:321以后的PECMD安装无线不成功,但不作任何改变换321或之前的就可以安装成功
我仔细看了一下,核心语句是DEVI *norescan $%1,,%Temp%
其中$%1是无线CAB包的名称,我怀疑是不是*norescan这个参数引起无线安装不成功,321及其之前的版本这个参数没起作用,请查实,也正在叫网友测试。

点评

网友已反馈,新版去掉*noresan也安装不了,只有发log来诊断了  详情 回复 发表于 2021-11-25 22:07
搞个LOGS上来看看,更直观一些。  详情 回复 发表于 2021-11-25 15:55
回复

使用道具 举报

16197#
发表于 2021-11-25 15:47:12 | 只看该作者
红毛樱木 发表于 2021-11-25 14:26
用&ExitPid变量传递退出标志,试试,如果不行就多加一个变量判断

确实是一种解决办法
回复

使用道具 举报

16198#
发表于 2021-11-25 15:55:42 | 只看该作者
hhh333 发表于 2021-11-25 15:05
有网友反馈了这样一个问题:321以后的PECMD安装无线不成功,但不作任何改变换321或之前的就可以安装成功
...

搞个LOGS上来看看,更直观一些。

点评

回了,在楼上,麻烦看一下  详情 回复 发表于 2021-11-26 06:49
你先到我发布的PE的帖子里看,有inf下的log  详情 回复 发表于 2021-11-25 16:20
回复

使用道具 举报

16199#
发表于 2021-11-25 16:20:04 | 只看该作者
红毛樱木 发表于 2021-11-25 15:55
搞个LOGS上来看看,更直观一些。

你先到我发布的PE的帖子里看,有inf下的log
回复

使用道具 举报

16200#
发表于 2021-11-25 22:07:33 | 只看该作者
hhh333 发表于 2021-11-25 15:05
有网友反馈了这样一个问题:321以后的PECMD安装无线不成功,但不作任何改变换321或之前的就可以安装成功
...

网友已反馈,新版去掉*noresan也安装不了,只有发log来诊断了

点评

CAB转为7z试试 CAB 加 索引 也 试试。  详情 回复 发表于 2021-11-27 09:26
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-23 10:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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