C# 检测是否正在访问硬盘

C# 检测是否正在访问硬盘,c#,hard-drive,system.diagnostics,led,C#,Hard Drive,System.diagnostics,Led,我正在尝试制作一个非常简单的硬盘访问监视器,它的工作原理与那些根据驱动器使用情况而闪烁的嵌入式指示灯类似。那个LED确实帮了我的忙,但我现在用的笔记本电脑没有=[ 所以,我制作了一个简单的托盘图标应用程序,但我不知道如何确定磁盘访问的变量 我搜索了它,找到了类似于System.Diagnostics.PerformanceCounter的东西,但我不知道如何将其用于我的任务 如果有其他解决方案,我也将不胜感激!=] 谢谢 哦!!我差点忘了,它需要检测对硬盘的任何访问。。我已经测试了一个应用程序(

我正在尝试制作一个非常简单的硬盘访问监视器,它的工作原理与那些根据驱动器使用情况而闪烁的嵌入式指示灯类似。那个LED确实帮了我的忙,但我现在用的笔记本电脑没有=[

所以,我制作了一个简单的托盘图标应用程序,但我不知道如何确定磁盘访问的变量

我搜索了它,找到了类似于System.Diagnostics.PerformanceCounter的东西,但我不知道如何将其用于我的任务

如果有其他解决方案,我也将不胜感激!=] 谢谢


哦!!我差点忘了,它需要检测对硬盘的任何访问。。我已经测试了一个应用程序(使用完全相同的假定功能),但经过一些测试后,我很容易意识到它缺少一些访问,主要是在执行一个新程序时。

我发现了一个用VB.NET编写的硬盘活动监视器示例应用程序。它相当简单,因此将其转换为c#应该没有问题

其思想是使用两个性能计数器,“磁盘读取字节/秒”和“磁盘写入字节/秒”来表示“LogicalDisk”

然后在主循环(需要线程化)中调用
NextValue
,以确定是否存在磁盘活动

R = ReadCounter.NextValue 
W = WriteCounter.NextValue 

完整的源代码在微软的网站上

你有什么特别的问题吗?那LED对你有什么帮助,真的吗?你对哪个硬盘感兴趣?如果它是带O/S的驱动器,那么您最好在工具栏上粘贴一个绿色按钮,因为O/S驱动器几乎是不间断使用的。为了更好地了解实际活动,我建议您尝试Process Monitor并查看“文件访问”选项卡@Igor它通过指示系统正在执行某些磁盘任务来帮助我。。例如,当我需要更新或安装某个东西时,它似乎被冻结了,该led是此类实际活动最实用的指示器。太棒了!我改编并执行了VB和C#。。他们眨眼完全同步。我只需要你的代码片段!=]
R = ReadCounter.NextValue 
W = WriteCounter.NextValue