在组合框中显示进程有问题

时间:2012-11-07 20:25:54

标签: .net vb.net visual-studio-2010 process

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

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

2 个答案:

答案 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