在我的应用程序中,用户单击按钮然后加载表单,并且在此表单中有一个组合框,可生成窗口进程列表并显示窗口名称。
它在visual studio中总能正常工作,但是当我启动编译版本时,我总是会收到此错误“未找到进程{0}。
我认为这意味着它没有可读取的进程,因此我添加了一些代码,仅在数量大于或等于1时显示,并且没有帮助。
有人看到我的问题吗?
Dim ProcessList() As Process = Process.GetProcesses
If ProcessList.Count() >= 1 Then
For I = 0 To UBound(ProcessList)
If ProcessList(I).MainWindowTitle.ToString = "" = False Then
ComboBox1.Items.Add(ProcessList(I).MainWindowTitle.ToString)
End If
Next
Else
ComboBox1.Items.Add("No windows found")
End If
答案 0 :(得分:0)
更改此行:
For I = 0 To UBound(ProcessList)
要:
For I = LBound(ProcessList) To UBound(ProcessList)
在VB中,一些数组从1开始
答案 1 :(得分:0)
我无法复制您的问题,我在Visual Studio中运行您的代码没有错误,并且可执行文件没有错误。在线查找错误时,不是描述性的,表明该过程无法访问该功能。您可以尝试添加一些额外的检查,作为最后的手段,如果您有Visual Studio Professional或更高版本,您可以attach Visual Studio到您的可执行文件并以这种方式解决您的错误。这是我用来测试的代码。
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim ProcessList() As Process = Process.GetProcesses
If ProcessList.Count() >= 1 Then
For Each p As Process In ProcessList
If Not IsNothing(p) Then
If Not String.IsNullOrEmpty(p.MainWindowTitle) Then
ComboBox1.Items.Add(p.MainWindowTitle.ToString)
End If
End If
Next
Else
ComboBox1.Items.Add("No windows found")
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim ProcessList() As Process = Process.GetProcesses
If ProcessList.Count() >= 1 Then
For Each p As Process In ProcessList
If Not IsNothing(p) Then
ComboBox1.Items.Add(p.ProcessName)
End If
Next
Else
ComboBox1.Items.Add("No windows found")
End If
End Sub
End Class