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 に答える