2012-11-07 24 views
1

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

它一直工作正常,在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

如果您在开发环境中查看进程,那么他们是您的应用程序还是Visual Studio? –

回答

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 
0

改变这一行:?

For I = 0 To UBound(ProcessList) 

要:

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

在VB中,一些阵列从1开始

+0

自从VB6以来,由System.Diagnostics.GetProcesses返回的任何集合将基于零 –

+0

对不起,我不在家,所以我还没有尝试过。马克你有什么想法,为什么它不工作?就像我说的那样,它只发生在一个编译调试/发布版本。 – user1632018

+0

@ user1632018我的第一个猜测会是一个权限问题,请尝试右键单击您的exe并以管理员身份运行 –