检测是否正在访问硬盘

时间:2015-10-20 16:43:12

标签: c# hard-drive system.diagnostics led

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

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

我搜索过它并找到类似 System.Diagnostics.PerformanceCounter 的内容,但我不知道将它用于我的任务。

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

哦!我差点忘了,它需要检测任何和每次访问硬盘驱动器..我已经测试了一个应用程序(具有完全相同的假设功能),但经过一些测试后我很容易意识到它缺少一些访问,主要是当你执行一个新程序时。

1 个答案:

答案 0 :(得分:2)

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

这个想法是使用两个性能计数器,“磁盘读取字节数/秒”和“磁盘写入字节数/秒”用于“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 

Microsoft网站上的完整源代码为here