我正在尝试制作一个非常简单的硬盘访问监视器,就像那些根据驱动器使用率闪烁的嵌入式LED 。那个LED真的很有帮助,但是我使用的笔记本电脑没有它。 = [
所以,我制作了一个简单的托盘图标应用程序,但我不知道如何确定磁盘访问的变量。
我搜索过它并找到类似 System.Diagnostics.PerformanceCounter 的内容,但我不知道将它用于我的任务。
如果有其他解决方案,我也很感激! =] 感谢。
哦!我差点忘了,它需要检测任何和每次访问硬盘驱动器..我已经测试了一个应用程序(具有完全相同的假设功能),但经过一些测试后我很容易意识到它缺少一些访问,主要是当你执行一个新程序时。
答案 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。