我有一个简单的 GUI,我只是存储系统信息并显示结果。
两个问题区域是detectADUC
和detectExchange
子的。只有当我在 form_load 事件的订单上方放置一个标签时,才会更新相应的标签。
我在想也许我需要发布一些东西?我在某处持有价值吗?请看下面。
检测交换
Private Sub detectExchange()
Dim exchange As New ServiceController("Microsoft Exchange Service Host")
Try
If exchange.Status.Equals(ServiceControllerStatus.Running) Or exchange.Status.Equals(ServiceControllerStatus.StartPending) Then
Label9.Text = "Detected - Running"
End If
Catch ex As InvalidOperationException
Label9.ForeColor = Color.Red
Label9.Text = "NOT INSTALLED"
End Try
If exchange.Status.Equals(ServiceControllerStatus.Stopped) Or exchange.Status.Equals(ServiceControllerStatus.StopPending) Then
Label9.Text = "Detected - NOT RUNNING"
End If
End Sub
检测ADUC
Private Sub detectADUC()
Dim aduc As New ServiceController("Active Directory Domain Services")
Try
If aduc.Status.Equals(ServiceControllerStatus.Running) Or aduc.Status.Equals(ServiceControllerStatus.StartPending) Then
Label10.Text = "Detected - Running"
End If
Catch ex As InvalidOperationException
Label10.ForeColor = Color.Red
Label10.Text = "NOT INSTALLED"
End Try
If aduc.Status.Equals(ServiceControllerStatus.Stopped) Or aduc.Status.Equals(ServiceControllerStatus.StopPending) Then
Label10.Text = "Detected - NOT RUNNING"
End If
End Sub
调用潜艇
Private Sub systemchecks_Load(sender As Object, e As EventArgs) Handles MyBase.Load
RichTextBox1.Text = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") & (": installation launched")
Label12.Text = getExternalIP()
getHostname()
hardwareID()
detectOS()
detectADUC()
detectExchange()
hardwareID()
End Sub
如您所见,唯一不同的是变量名称、服务名称和它更新的标签。- 但是只有一个标签会更新,这取决于我在 form_load 中首先调用的标签。
我试过使用Me.Refresh
, - 我试过添加一个新类,然后创建一个公共共享子,然后在 form_load 中引用它。
我什至将交换异常捕获重命名为ex2
有人可以解释这个问题,以便我理解并避免未来的问题吗?