检测硬盘是否正在被访问

本文关键字:访问 硬盘 是否 检测 | 更新日期: 2023-09-27 18:18:28

我正试图使一个非常简单的硬盘访问监视器工作像那些嵌入式led闪烁根据驱动器的使用。那个LED真的对我很有帮助,但是我用的笔记本电脑没有。= [

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

我已经搜索过了,发现了类似System.Diagnostics的东西。PerformanceCounter,但我不知道使用它为我的任务。

如果有其他解决方案,我也很感激!=)谢谢。

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

检测硬盘是否正在被访问

我找到了一个用VB.NET编写的硬盘活动监视器示例应用程序。这是相当简单的,所以你应该没有问题,将其转换为c#。

这个想法是使用两个性能计数器,"磁盘读字节/秒"answers"磁盘写字节/秒"为"LogicalDisk"

 ReadCounter = New PerformanceCounter("LogicalDisk", "Disk Read Bytes/sec", "_Total") 
 WriteCounter = New PerformanceCounter("LogicalDisk", "Disk Write Bytes/sec", "_Total") 

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

R = ReadCounter.NextValue 
W = WriteCounter.NextValue 

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