2

これが私のコードです:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim proc As New EnumWindProc(AddressOf EnumChild), i As Int32
    Dim hwnd() As Process = Process.GetProcesses
    Dim FormTitle As String
    Dim RetVal As Integer
    For i = 0 To hwnd.GetUpperBound(0)
        Children = String.Empty
        EnumChildWindows(hwnd(i).MainWindowHandle, proc, IntPtr.Zero)
        RetVal = GetWindowText(hwnd(i).Handle, FormTitle, Int16.MaxValue)
        ListBox1.Items.Add(FormTitle & " " & hwnd(i).ToString & Convert.ToChar(Keys.Return) & Children)
    Next i
End Sub

何らかの理由で、ウィンドウの最初の 2 行しか表示されません。コードの GetWindowTest 行を削除すると、すべてのウィンドウが表示されますが、キャプションはありません。

どうすればこれを修正できますか?

4

1 に答える 1

0

Processを試してはいけません。ここでは、現在開いているウィンドウのタイトルを取得する例を示します。

    For Each P As Process In (From item In Process.GetProcesses Where item.MainWindowTitle.Trim <> vbNullString)
        Me.ListBox1.Items.Add(P.MainWindowTitle)
    Next
于 2012-08-15T03:50:13.780 に答える