无忧启动论坛

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

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

    [复制链接]
16201#
发表于 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就可看到我上图的环境,这个时候点右键刷新桌面,则失去桌面。
回复

使用道具 举报

16202#
发表于 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, 下载积分: 无忧币 -2

点评

用&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
回复

使用道具 举报

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

kill   *force  *%__pid%
回复

使用道具 举报

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

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

使用道具 举报

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

好家伙,强行自杀

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

16209#
发表于 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变量传递退出标志,试试,如果不行就多加一个变量判断
回复

使用道具 举报

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

使用道具 举报

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

确实是一种解决办法
回复

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

16215#
发表于 2021-11-26 06:39:49 | 只看该作者
本帖最后由 hhh333 于 2021-11-26 10:33 编辑

J.7z (7.79 KB, 下载次数: 4) 这是只换PECMD不换任何东西的安装过程LOG

G.7z (6.41 KB, 下载次数: 2) 这是setupapi.dev.log
回复

使用道具 举报

16216#
发表于 2021-11-26 06:49:21 | 只看该作者
红毛樱木 发表于 2021-11-25 15:55
搞个LOGS上来看看,更直观一些。

回了,在楼上,麻烦看一下
回复

使用道具 举报

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

调试了下。
原因是没有 开动 PECMD 守护。
admin.ini (48行)
SHEL -user %WinDir%\explorer.exe

不能注释


对应地,
su.ini 切换回来, 要清除相应的 设置:

`切回到System
_SUB SystemBack
//清除 user shell 设置
SHEL -user
`FIND explorer.exe,KILL -force -explorer EXPLORER.EXE
`EXEC !CMD /C TASKKILL /F /FI "USERNAME eq Administrator" /IM pecmd.exe &NSudoC.exe -U:S -P:E %Windir%\explorer.exe &NSudoC.exe -U:S -P:E PECMD.EXE MAIN* --user %Windir%\System32\Admin.ini
EXEC !TSCON 1
_END



回复

使用道具 举报

16218#
 楼主| 发表于 2021-11-27 09:26:52 | 只看该作者
本帖最后由 mdyblog 于 2021-11-27 09:30 编辑
hhh333 发表于 2021-11-25 22:07
网友已反馈,新版去掉*noresan也安装不了,只有发log来诊断了

加调试开关  *dbg:7

CAB转为7z试试
CAB 加 索引 也  试试。对比 下

回复

使用道具 举报

16219#
发表于 2021-11-29 09:55:05 | 只看该作者
mdyblog 发表于 2021-11-27 09:26
加调试开关  *dbg:7

CAB转为7z试试

将第一句改写为:LOGS *dbg:7 --lock:123 --t=1 --2 %windir%\PECMD-net.LOG
是吗?
回复

使用道具 举报

16220#
 楼主| 发表于 2021-11-29 10:25:43 | 只看该作者
hhh333 发表于 2021-11-29 09:55
将第一句改写为:LOGS *dbg:7 --lock:123 --t=1 --2 %windir%\PECMD-net.LOG
是吗?

devi *dbg:7 ....
回复

使用道具 举报

16221#
发表于 2021-11-29 11:09:32 | 只看该作者
mdyblog 发表于 2021-11-26 23:26
调试了下。
原因是没有 开动 PECMD 守护。
admin.ini (48行)

感谢指导,现在有几个点算是明确了:
1、用-user或main启动的脚本,需要显式的SHEL来启动explorer才能进行守护
2、shel -user可以清除原来的,这个以前确实不会用

现在还有一个小毛病,第一次切admin由于有一个显式的SHEL -user explorer反正会出现自动打开一个资源管理器,不知这个要如何避免
回复

使用道具 举报

16222#
 楼主| 发表于 2021-11-29 12:23:22 | 只看该作者
hhh333 发表于 2021-11-29 11:09
感谢指导,现在有几个点算是明确了:
1、用-user或main启动的脚本,需要显式的SHEL来启动explorer才能进 ...

现在还有一个小毛病,第一次切admin由于有一个显式的SHEL -user explorer反正会出现自动打开一个资源管理器,不知这个要如何避免
------------
先KILL explorer 试试。
KILL explorer
SHEL -user explorer
回复

使用道具 举报

16223#
发表于 2021-11-29 15:23:43 | 只看该作者
mdyblog 发表于 2021-11-29 12:23
现在还有一个小毛病,第一次切admin由于有一个显式的SHEL -user explorer反正会出现自动打开一个资源管理 ...

在实测中发现KILL -force -explorer EXPLORER.EXE比较容易出现explorer错误或内存不能为读错误(记不清了),看直接用kill explorer怎么样还没测试
回复

使用道具 举报

16224#
发表于 2021-11-29 15:35:55 | 只看该作者

7z的可以成功安装:这是加了dbg参数的log 1.7z (10.39 KB, 下载次数: 0)
回复

使用道具 举报

16225#
发表于 2021-11-29 22:54:07 | 只看该作者
本帖最后由 hhh333 于 2021-11-30 09:47 编辑
mdyblog 发表于 2021-11-29 12:23
现在还有一个小毛病,第一次切admin由于有一个显式的SHEL -user explorer反正会出现自动打开一个资源管理 ...

经测试,在win7/8中,admin.ini中在shel之前不kill explorer也不会打开explorer窗口,但无论是在admin.ini还是在进桌面以后kill explorer都会杀掉所有explorer,由于是在admin用户下,这个时候守护的是admin的explorer,因此会看到系统中只保持一个属于admin的explorer进程,这个时候再切回SYSTEM的话,由于原来守护的SYSTEM的explorer已经杀死了,这个时候会没有桌面。感觉这个守护还是有一些问题。

当然,如果kill explorer能够提供一个参数只杀当前用户的explorer也方便一点

回复

使用道具 举报

16226#
发表于 2021-11-29 23:22:14 来自手机 | 只看该作者
hhh333 发表于 2021-11-29 22:54
经测试,在win7/8中,admin.ini中在shel之前不kill explorer也不会打开explorer窗口,但无论是在admin.in ...

试试查找explore.exe的父进程,然后通过它的父进程的参数来判断。也许可行
回复

使用道具 举报

16227#
发表于 2021-11-30 07:32:02 | 只看该作者
红毛樱木 发表于 2021-11-29 23:22
试试查找explore.exe的父进程,然后通过它的父进程的参数来判断。也许可行

用TASKKILL /F /FI "USERNAME eq %username%" /IM explorer.exe来刷新桌面是可以的,但会收获一个explorer错误
回复

使用道具 举报

16228#
发表于 2021-11-30 09:27:56 | 只看该作者
切到不同用户反复刷新桌面有时会出现有一个explorer进程不能守护的情况
回复

使用道具 举报

16229#
发表于 2021-11-30 20:06:07 来自手机 | 只看该作者
签到
回复

使用道具 举报

16230#
发表于 2021-12-1 09:19:01 | 只看该作者
这种技术贴不需要签到了吧
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-20 07:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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