几年前我写了一个简单的 VB 应用程序,它使用一个计时器来调用 2 个 PerformanceCounters,一个用于检测磁盘读取,另一个用于检测磁盘写入。该信息用于相应地更改托盘图标,使其类似于计算机机箱上的 HDD LED。它多年来一直工作得非常好,直到最近它开始抛出 InvalideOperationException.:
“DriveTray.exe 中发生了‘System.InvalidOperationException’类型的未处理异常
附加信息:创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:输入字符串的格式不正确。”
这就是给出的所有信息。我不知道这意味着什么,也找不到任何相关的在线帮助。我正在运行 Windows 10,最近在更新图标时使用 Visual Studio 2015 重新编译/重新发布,但它仍然运行良好。这种行为仅在最后一两天才开始。我重新安装了 VS,认为其中一个库可能以某种方式损坏,但这没有用。由于多年来我没有更改任何代码,我什至不知道在哪里看。
这是我的代码:
公共类 frmDriveTray
Private Sub Timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer.Tick
Dim both As Integer = 0
If (Me.pcLogicalDiskRead.NextValue > 0) Then
both += 1
End If
If (Me.pcLogicalDiskWrite.NextValue > 0) Then
both += 2
End If
Select Case both
Case 0 'no activity
Me.NotifyIcon.Icon = My.Resources.icoCLOUDS
Case 1 'reading
Me.NotifyIcon.Icon = My.Resources.icoGREEN
Case 2 'writing
Me.NotifyIcon.Icon = My.Resources.icoRED
Case 3 'reading and writing
Me.NotifyIcon.Icon = My.Resources.icoAMBER
End Select
End Sub
Private Sub mnuExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuExit.Click
Me.NotifyIcon.Visible = False
Me.NotifyIcon.Dispose()
Me.Timer.Dispose()
Application.Exit()
End Sub
Private Sub frmDriveTray_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.mnuRunAtStartup.Checked = My.Settings.RunAtStartup
Me.NotifyIcon.Icon = My.Resources.icoIRIDESCENT
Me.NotifyIcon.Visible = True
Me.NotifyIcon.Text = "1.1.0.10"
Me.Hide()
End Sub
Private Sub mnuRunAtStartup_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuRunAtStartup.Click
Dim key As Microsoft.Win32.RegistryKey
key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
If Me.mnuRunAtStartup.Checked = True Then
key.SetValue(Application.ProductName, Application.ExecutablePath)
Else
If key.GetValue(Application.ProductName) Is Nothing Then
key.Close()
Else
key.DeleteValue(Application.ProductName)
End If
End If
My.Settings.RunAtStartup = Me.mnuRunAtStartup.Checked
End Sub
结束类