无忧启动论坛

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

[讨论] PECMD如何调用清空回收站函数SHEmptyRecycleBin

[复制链接]
跳转到指定楼层
1#
发表于 2020-6-15 11:51:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
搜到清空回收站的函数是SHELL32.DLL,SHEmptyRecycleBin,但我不是程序员,不知道参数怎么整。
PECMD很多人都用FILE命令删除垃圾文件,但是无法删除$RECYCLE.BIN文件夹,也无法清空回收站。
麻烦高手指点一下。谢谢!
2#
发表于 2020-6-15 12:17:34 | 只看该作者
PE里不都是直接禁用回收站
回复

使用道具 举报

3#
 楼主| 发表于 2020-6-15 12:21:27 | 只看该作者
本帖最后由 2010hook 于 2020-6-15 12:27 编辑
我是小青蛙 发表于 2020-6-15 12:17
PE里不都是直接禁用回收站

XP年代是这样,但不够合理。你们没试过翻垃圾桶?
应该先移除到回收站,最后确认没问题,再清空,降低误删概率。

非PE系统正常删除,登入PE还是会显示回收站有垃圾。
回复

使用道具 举报

4#
发表于 2020-6-15 12:29:36 来自手机 | 只看该作者
call $SHELL32.DLL,SHEmptyRecycleBin

评分

参与人数 1无忧币 +1 收起 理由
2010hook + 1 试过,不对

查看全部评分

回复

使用道具 举报

5#
发表于 2020-6-15 12:34:00 | 只看该作者
https://docs.microsoft.com/en-us ... -shemptyrecyclebina

标准用法 NULL,NULL,0

PECMD的话,最好给3个0就行吧。

最后一个有3个flag值可以组合:

不显示确认对话框
不显示删除进度条对话框
不播放系统提示音

评分

参与人数 1无忧币 +3 收起 理由
2010hook + 3

查看全部评分

回复

使用道具 举报

6#
 楼主| 发表于 2020-6-15 12:42:40 | 只看该作者
slore 发表于 2020-6-15 12:34
https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shemptyrecyclebina

标准用 ...

有价值。
不过我写到.lnk里面无反应:
PECMD.EXE call $SHELL32.DLL,SHEmptyRecycleBin,0,0,0
回复

使用道具 举报

7#
发表于 2020-6-15 12:54:59 | 只看该作者
本帖最后由 slore 于 2020-6-15 12:58 编辑
2010hook 发表于 2020-6-15 12:42
有价值。
不过我写到.lnk里面无反应:
PECMD.EXE call $SHELL32.DLL,SHEmptyRecycleBin,0,0,0

实际API有2个,ANSI的或者Unicode。
貌似PECMD不支持自动识别。

你用SHEmptyRecycleBinA,或者SHEmptyRecycleBinW。

另外看call的帮助,数字类型需要用前导#字符。
所以,

  1. call $SHELL32.DLL,SHEmptyRecycleBinW,#0,#0,#0
复制代码



SHERB_NOCONFIRMATION  0x00000001
SHERB_NOPROGRESSUI      0x00000002
SHERB_NOSOUND              0x00000004

不要确认对话框最后一个就行#1, 不要带进度对话框就 #2,
b不要确认框也不要进度条就是  #3。不要声音再加4就行了。

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5 有效!专业!

查看全部评分

回复

使用道具 举报

8#
 楼主| 发表于 2020-6-15 13:28:51 | 只看该作者
slore 发表于 2020-6-15 12:54
实际API有2个,ANSI的或者Unicode。
貌似PECMD不支持自动识别。

你总是那么耐心细致的给人讲解,让人受益匪浅。
回复

使用道具 举报

9#
 楼主| 发表于 2020-6-15 15:10:35 | 只看该作者
本帖最后由 2010hook 于 2020-6-23 09:11 编辑
slore 发表于 2020-6-15 12:54
实际API有2个,ANSI的或者Unicode。
貌似PECMD不支持自动识别。

为何以下命令报错,无法正确建立lnk:
  1. link %Programs%\清理垃圾,pecmd.exe,team file %WinDir%\temp\* -force|file %temp%\* -force|call $SHELL32.DLL,SHEmptyRecycleBinW,#0,#0,#3|exec !cmd /c "for /f %%a in ('pnputil -e') do (if /i "%%~xa" equ ".inf" pnputil -d -f %%a)",pecmd.exe
复制代码
回复

使用道具 举报

10#
发表于 2020-6-15 15:47:44 | 只看该作者
2010hook 发表于 2020-6-15 15:10
为何以下命令报错,无法正确建立lnk:

你先手动创建快捷方式,看看可以用不。
然后就是pecmd传参数的问题了。符号比较多,要转义。
你要对比手动做的快捷方式,差啥字符,特别逗号,pecmd本身也是参数分隔符。

你这种复杂的建议写到ini文件,快捷方式就是pecmd执行ini文件这样简捷。
回复

使用道具 举报

11#
 楼主| 发表于 2020-6-15 16:02:14 | 只看该作者
slore 发表于 2020-6-15 15:47
你先手动创建快捷方式,看看可以用不。
然后就是pecmd传参数的问题了。符号比较多,要转义。
你要对比 ...

可以的,手工创建,然后链接到菜单。
逗号太多了,写到ini出现错误分割。
回复

使用道具 举报

12#
发表于 2020-6-15 16:39:38 | 只看该作者
2010hook 发表于 2020-6-15 16:02
可以的,手工创建,然后链接到菜单。
逗号太多了,写到ini出现错误分割。

逗号多了,弄到变量里,用变量传

评分

参与人数 1无忧币 +2 收起 理由
2010hook + 2 试了,变量确实可以。

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 16:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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