C# 系统应用之清空回收站操作

简介:

由于毕业设计项目是基于U盘防御的软件,所以涉及些系统应用的知识.本文主要讲述的是如何通过C#代码实现清空回收站的资源.主要通过SHEmptyRecycleBin函数实现.

一.SHEmptyRecycleBin函数

SHEmptyRecycleBin函数功能是清空指定驱动的回收站.函数如下:

HRESULT SHEmptyRecycleBin(
HWND hwnd,                    //父窗口句柄
LPCTSTR pszRootPath,          //将要清空的回收站的地址
DWORD dwFlags                 //用于清空回收站的功能参数
);

该函数在shell32.dll下,其中LPCTSTR pszRootPath指向要清空的回收站的地址,如果为空时,则清空所有驱动器上的回收站.dwFlags参数可以有三个不同的值,可为一个或多个组合,用以设定是否要弹出系统对话框、是否显示删除进度条的UI和当删除完成时,是否播放声音.

const int SHERB_NOCONFIRMATION = 0x000001;   //不显示确认删除的对话框
const int SHERB_NOPROGRESSUI = 0x000002;     //不显示删除过程的进度条
const int SHERB_NOSOUND = 0x000004;          //当删除完成时,不播放声音

清空回收站中的文件的SHEmptyRecycleBin是一个内核API方法,该方法在C#中需要手动的引入方法所在的类库.同时因为调用了Windows API,所以要添加对System.Runtime.IneropServices命名空间的引用;该方法在C#中的声明语法如下:

DllImportAttribute("shell32.dll")]         //声明API函数
private static extern int SHEmptyRecycleBin(IntPtr handle, string root, int falgs);

二.源代码

程序代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace ClearRecycle
{
    public partial class Form1 : Form
    {
        const int SHERB_NOCONFIRMATION = 0x000001;   //不显示确认删除的对话框
        const int SHERB_NOPROGRESSUI = 0x000002;     //不显示删除过程的进度条
        const int SHERB_NOSOUND = 0x000004;          //当删除完成时,不播放声音

        public Form1()
        {
            InitializeComponent();
        }

        [DllImportAttribute("shell32.dll")]          //声明API函数
        private static extern int SHEmptyRecycleBin(IntPtr handle, string root, int falgs);

        //点击"清空回收站"按钮
        private void button1_Click(object sender, EventArgs e)
        {
            SHEmptyRecycleBin(this.Handle, "", SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND);
        }      
    }
}

代码中dwFlags值为“SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND”表示删除时不显示确认删除对话框,不显示删除过程的进度条,同时不播放声音.如果不指定预设状态,为0时会弹出系统的对话框和声音.

三.运行结果

如果SHEmptyRecycleBin(this.Handle,"",0);时提示如下确认删除对话框,如果项目过多时会显示删除的进度条.

如果删除文件时,没有显示声音,可以通过控制面板上面修改.如下图所示:

该文章主要是结合自己的毕业设计部分,同时查看相应书籍和参考下面几位博主完成.是一篇基础性应用文章,希望大家关注level up的文章,他的文章真心有用,似乎是台湾的一位智者.也将是我将来学习的主要对象.非常感谢他带来这么有用的系列文章.http://www.dotblogs.com.tw/larrynung/archive/2012/09/26/75065.aspx
最后希望该文章对大家有所帮助,如果有不足或错误的地方见谅!由于参考的令几篇文章都是转载,没有找到原作者,但同样感谢!
(By:Eastmount 2014-1-17 晚9点http://blog.csdn.net/eastmount)

目录
相关文章
|
4天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
21天前
|
安全 JavaScript 前端开发
C#医院手麻系统源码,手术麻醉管理系统源码
手术麻醉管理系统贯穿患者入院至出院全程,整合术前术后流程,如手术排班、麻醉计划、术中监护及术后恢复。采用C#.net6.0、Vue、Ant-Design等技术,与sqlserver2019数据库结合。系统提供麻醉记录、手术安全核查、费用管理等功能,确保信息数字化和流程规范化。通过自动化记录和数据分析,增强手术安全,优化资源分配,并支持医疗质控与研究。
C#医院手麻系统源码,手术麻醉管理系统源码
|
22天前
|
存储 监控 安全
C#手术麻醉系统源码 大型医院手麻系统4大需求是什么?
C#编写的大型医院手术麻醉系统旨在满足四大核心需求:智慧医院建设,要求实时患者信息共享与监控;医院等级评级,强调安全评估与术后管理;电子病历评级,规定手术预约、麻醉信息的标准化;科室需求,包括系统互联、流程信息化、数据追溯、操作简便、文书完整、快速响应、生命体征动态采集及质量控制。系统提升手麻工作的效率与安全性,确保手术顺利进行。
|
1月前
|
数据挖掘 C# 开发工具
采用C#语言开发的全套医院体检系统PEIS源码功能介绍
体检系统,是专为体检中心/医院体检科等体检机构,专门开发的全流程管理系统,通过软件实现检测仪器数据自动提取,内置多级医生工作台,细化工作将体检检查结果汇总,生成体检报告登记到计算机系统中。通过软件系统进行数据分析统计与评判以及建立体检相关的体检档案。从而实现体检流程的信息化,提高工作效率,减少手动结果录入的一些常犯错误。 在实际应用中,医院体检系统能够解决传统体检中手工操作带来的问题,如工作量大、效率低下、易漏检、重检或错检等。通过与医院信息系统(如HIS、LIS、PACS等)的连接,系统能够满足体检中心的日常工作流程,提供更好的管理、统计和查询分析功能。同时,基于网络基础的系统可以在网上传输
23 1
|
2月前
|
开发框架 前端开发 NoSQL
C#医院区域云LIS系统源码
LIS操作流程标本流转----标本核收----标本上机检验----费用汇总----报告审核----报告发布----报告打印等基础流程
38 3
|
3月前
|
运维 数据挖掘 C#
C#大型LIS检验信息系统项目源码
LIS系统能实现临床检验信息化,检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后,自动生成打印报告,通过网络存储在数据库中,使医生能够通过医生工作站方便、及时地看到患者的检验结果。
30 0
|
3月前
|
小程序 前端开发 C#
C#三甲医院在线预约挂号系统源码
医院在线预约挂号系统是一种方便患者预约挂号的系统,患者可以通过该系统进行预约挂号,省去了到医院现场排队等待的时间,提高了就诊效率。随着医院信息化水平的不断发展,医院在线预约挂号管理系统已成为医院管理中不可或缺的一部分。
55 1
|
3月前
|
小程序 前端开发 C#
C#微信公众号HIS预约挂号系统源码
微信公众号预约挂号系统、支付宝小程序预约挂号系统主要是让自费、医保患者在手机上就能实现就医全过程,实时预约挂号、自费、医保结算,同时还可以查询检查检验报告等就诊信息,真正实现了让信息“多跑路”,让群众“少跑腿”。系统与HIS对接,通过医院微信公众号,患者用身份证注册以后,可以预约看诊的时间、医生挂号缴费。预约成功后,会收到预约码或二维码,患者可以在预约的时间段,前往医院看诊。既可以节约患者的等待时间,又可以降低医院的负荷。 一、开发环境 ❀技术架构:net     ❀开发语言:C# ❀开发工具:VS2019     ❀前端框架:uni-app     ❀后端框架:net     ❀数 据
88 1
|
4月前
|
人工智能 机器人 C#
Windows编程课设(C#)——基于WPF和.net的即时通讯系统(仿微信)
一款参考QQ、微信的即时通讯软件。采用CS结构,客户端基于.Net与WPF开发,服务端使用Java开发。
|
4月前
|
开发框架 前端开发 NoSQL
【C#】医学实验室云LIS检验信息系统源码 采用B/S架构
【C#】医学实验室云LIS检验信息系统源码 采用B/S架构
62 0