1

在我的应用程序中,用户单击一个按钮,然后加载一个表单,在此表单中,有一个组合框可以生成一个窗口进程列表并显示窗口名称。

它在 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
4

2 回答 2

0

更改此行:

For I = 0 To UBound(ProcessList)

到:

For I = LBound(ProcessList) To UBound(ProcessList)

在VB中,一些数组从1开始

于 2012-11-07T21:33:35.697 回答
0

我无法复制您的问题,我在 Visual Studio 中运行您的代码没有错误,并且从可执行文件中运行没有错误。在网上查找错误时,它不是描述性的,表明该过程无法访问该功能。你可以尝试添加一些额外的检查,如果你有 Visual Studio Professional 或更高版本,你可以将 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
于 2012-11-08T04:28:47.580 回答