PECMD如何调用清空回收站函数SHEmptyRecycleBin
搜到清空回收站的函数是SHELL32.DLL,SHEmptyRecycleBin,但我不是程序员,不知道参数怎么整。PECMD很多人都用FILE命令删除垃圾文件,但是无法删除$RECYCLE.BIN文件夹,也无法清空回收站。
麻烦高手指点一下。谢谢!
PE里不都是直接禁用回收站 本帖最后由 2010hook 于 2020-6-15 12:27 编辑
我是小青蛙 发表于 2020-6-15 12:17
PE里不都是直接禁用回收站
XP年代是这样,但不够合理。你们没试过翻垃圾桶?
应该先移除到回收站,最后确认没问题,再清空,降低误删概率。
非PE系统正常删除,登入PE还是会显示回收站有垃圾。 call $SHELL32.DLL,SHEmptyRecycleBin https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shemptyrecyclebina
标准用法 NULL,NULL,0
PECMD的话,最好给3个0就行吧。
最后一个有3个flag值可以组合:
不显示确认对话框
不显示删除进度条对话框
不播放系统提示音
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 本帖最后由 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的帮助,数字类型需要用前导#字符。
所以,
call $SHELL32.DLL,SHEmptyRecycleBinW,#0,#0,#0
SHERB_NOCONFIRMATION0x00000001
SHERB_NOPROGRESSUI 0x00000002
SHERB_NOSOUND 0x00000004
不要确认对话框最后一个就行#1, 不要带进度对话框就 #2,
b不要确认框也不要进度条就是#3。不要声音再加4就行了。 slore 发表于 2020-6-15 12:54
实际API有2个,ANSI的或者Unicode。
貌似PECMD不支持自动识别。
你总是那么耐心细致的给人讲解,让人受益匪浅。 本帖最后由 2010hook 于 2020-6-23 09:11 编辑
slore 发表于 2020-6-15 12:54
实际API有2个,ANSI的或者Unicode。
貌似PECMD不支持自动识别。
为何以下命令报错,无法正确建立lnk:
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 2010hook 发表于 2020-6-15 15:10
为何以下命令报错,无法正确建立lnk:
你先手动创建快捷方式,看看可以用不。
然后就是pecmd传参数的问题了。符号比较多,要转义。
你要对比手动做的快捷方式,差啥字符,特别逗号,pecmd本身也是参数分隔符。
你这种复杂的建议写到ini文件,快捷方式就是pecmd执行ini文件这样简捷。 slore 发表于 2020-6-15 15:47
你先手动创建快捷方式,看看可以用不。
然后就是pecmd传参数的问题了。符号比较多,要转义。
你要对比 ...
可以的,手工创建,然后链接到菜单。
逗号太多了,写到ini出现错误分割。 2010hook 发表于 2020-6-15 16:02
可以的,手工创建,然后链接到菜单。
逗号太多了,写到ini出现错误分割。
逗号多了,弄到变量里,用变量传
页:
[1]