VC++实现清空回收站

SHSTDAPI SHEmptyRecycleBinA(
  [in, optional] HWND   hwnd,
  [in, optional] LPCSTR pszRootPath,
                 DWORD  dwFlags
);
参数
[in, optional] hwnd

类型:HWND

操作期间可能显示的任何对话框的父窗口的句柄。 此参数可以为 NULL[in, optional] pszRootPath

类型: LPCTSTR

最大长度为 null 的字符串的地址MAX_PATH,其中包含回收站所在的根驱动器的路径。 此参数可以包含格式化为驱动器、文件夹和子文件夹名称的字符串的地址,例如 c:\windows\system。 它还可以包含空字符串或 NULL。 如果此值为空字符串或 NULL,则会清空所有驱动器上的所有回收站。

dwFlags

类型:DWORD

以下一个或多个值。

SHERB_NOCONFIRMATION
不会显示任何确认删除对象的对话框。

SHERB_NOPROGRESSUI
不显示指示进度的对话框。

SHERB_NOSOUND
操作完成后不会播放任何声音。

返回值
类型: HRESULT

如果此函数成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

最低受支持的客户端	Windows 2000 Professional、Windows XP [仅限桌面应用]
最低受支持的服务器	Windows 2000 Server [仅限桌面应用]
目标平台	Windows
标头	shellapi.h
Library	Shell32.lib
DLL	Shell32.dll (版本 4.71 或更高版本)
API 集	Windows 10版本 10.0.14393) 中引入 ext-ms-win-shell-shell32-l1-2-2 (

代码

#include<windows.h>
#include<WinUser.h>
#pragma comment(lib, "Shell32.lib")
int main()
{
	SHEmptyRecycleBin(NULL,NULL,SHERB_NOCONFIRMATION|SHERB_NOPROGRESSUI);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果清空回收站失败,可能是由于以下几个原因: 1. 回收站正在被使用:如果回收站中有文件正在被使用,那么就无法清空回收站。在执行清空回收站的命令之前,请确保回收站中没有文件被打开或正在被使用。 2. 权限不足:清空回收站需要管理员权限,如果当前用户没有管理员权限,则无法清空回收站。请使用管理员账户登录或以管理员身份运行脚本。 3. 回收站已损坏:如果回收站已经损坏,可能导致清空回收站失败。可以尝试手动清空回收站或者通过修复硬盘错误来解决这个问题。 下面是一个修改后的脚本,加入了对回收站清空失败的处理: ``` @echo off echo 正在提升管理员权限... setlocal enabledelayedexpansion set cmd="%~dpnx0" set params=%* set params=!params:%cmd%=! set params=!params:"=! powershell -Command "Start-Process -Verb RunAs -FilePath '%cmd%' -ArgumentList '%params%'" goto:eof :main echo 正在清理C盘系统垃圾... RD /S /Q %systemroot%\Temp MD %systemroot%\Temp del /f /s /q %systemroot%\Temp\*.* RD /S /Q %systemroot%\Prefetch MD %systemroot%\Prefetch del /f /s /q %systemroot%\*.log del /f /s /q %systemroot%\*.bak del /f /s /q %systemroot%\*.tmp del /f /s /q %systemroot%\*.dmp del /f /s /q %systemroot%\system32\*.tmp del /f /s /q %systemroot%\system32\*.log del /f /s /q %systemroot%\system32\*.dmp echo 正在清空回收站... RD /S /Q C:\$Recycle.Bin || ( echo 回收站清空失败,尝试手动清空回收站... start "" /b explorer.exe shell:RecycleBinFolder timeout /t 5 /nobreak > nul taskkill /f /im explorer.exe > nul exit ) echo 清理完成! echo 等待1小时后继续清理... ping -n 3600 127.0.0.1 > nul goto main ``` 在这个脚本中,当清空回收站失败时,会尝试打开回收站,并等待5秒钟,然后强制关闭资源管理器进程,以便手动清空回收站。如果手动清空回收站成功,脚本会继续执行,否则脚本会退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百口可乐__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值