我想列出桌面上所有"新建文本"窗口的句柄下面是我的代码
Left$(WinText, WinTextLength) = "新建文本"
这段有点搞笑~可是我真不知道怎么写才可以列的出来!高手来帮下啊!Public WinText As String * 256 '窗口名
Public Handler(200) As Long '(定义一个函数.)
Public Sub findrunningprogram()
Dim RenHWND As Long 
Dim RetValue, i As Long 
Dim WinTextLength As Long 
  Count = 0
  'Form1.List1.Clear  
   RenHWND = GetWindow(Form1.hwnd, GW_HWNDFIRST) 
Do
  RetValue = GetWindowText(RenHWND, WinText, 256) 
  If RetValue <> 0 Then 
    WinTextLength = GetWindowTextLength(RenHWND)
      If Left$(WinText, WinTextLength) = "新建文本" Then
         Form1.List1.AddItem WinText
         Form1.List1.AddItem RenHWND & "   " & WinText  
  End If
  RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)  Loop Until RenHWND = 0
Loop Until RenHWND = 0

解决方案 »

  1.   

    你的代码非常的奇怪,VB的编译器会自动识别错误RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)  Loop Until RenHWND = 0
    这是????  
    只有1个循环为什么又嵌套了,Sorry,我不经常用这样的写法,觉得太难理解了.
      

  2.   

    真是看得头晕
    do...until 没有匹配,if ...end if也有没匹配,不知道这样的程序能用不?其他错误一时还没看出来
      

  3.   

    那是我粘贴错了!我就改.刚发贴手抖呀. Do
      RetValue = GetWindowText(RenHWND, WinText, 256) 
      If RetValue <> 0 Then       
        WinTextLength = GetWindowTextLength(RenHWND)
          If Left$(WinText, WinTextLength) = "新建文本" Then   不知道怎么了老是掉不进这里!
             Form1.List1.AddItem WinText
             Form1.List1.AddItem RenHWND & "   " & WinText  
      End If
      end if 
      RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)  
    Loop Until RenHWND = 0
      

  4.   


    RetValue = GetWindowText(RenHWND, WinText, 256) 
    ''RenHWND这个句柄一值是空的怎么可能取出值来???
      

  5.   

    Public WinText As String * 256 '窗口名
    Public Handler(200) As Long '(定义一个函数.)
    Public Sub findrunningprogram()
    Dim RenHWND As Long 
    Dim RetValue, i As Long 
    Dim WinTextLength As Long 
      Count = 0
      'Form1.List1.Clear  
       RenHWND = GetWindow(Form1.hwnd, GW_HWNDFIRST) 
    这是上面部分!
      

  6.   

    Public WinText As String * 256 '窗口名
    Public Handler(200) As Long '(定义一个函数.)
    Public Sub findrunningprogram()
    Dim RenHWND As Long 
    Dim RetValue, i As Long 
    Dim WinTextLength As Long 
      Count = 0
      'Form1.List1.Clear  
       RenHWND = GetWindow(Form1.hwnd, GW_HWNDFIRST) 
      RetValue = GetWindowText(RenHWND, WinText, 256) 
      If RetValue <> 0 Then       
        WinTextLength = GetWindowTextLength(RenHWND)
          If Left$(WinText, WinTextLength) = "新建文本" Then   不知道怎么了老是掉不进这里!
             Form1.List1.AddItem WinText
             Form1.List1.AddItem RenHWND & "   " & WinText  
      End If
      end if 
      RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)  
    Loop Until RenHWND = 0
      

  7.   

    Do
       WinText = String$(255, vbNullChar)
       WinTextLength = Len(WinText)
      
      RetValue = GetWindowText(RenHWND, WinText, WinTextLength)
      If RetValue > 0 Then
      

  8.   

    不知道改的对不对!,还是B行!SOS
    是不我这样的做法跟本就是错的!!!!!!!!!!!!!!!!1
    Public WinText As String '窗口名Public Sub findrunningprogram()
       Dim RenHWND As Long  '窗口句柄
       Dim Count As Integer
       Dim RetValue As Long 
       Dim WinTextLength As Long     RenHWND = GetWindow(Form1.hwnd, GW_HWNDFIRST) '取第一个窗口句柄
    Do
        WinText = String$(255, vbNullChar)
        WinTextLength = Len(WinText)
        RetValue = GetWindowText(RenHWND, WinText, WinTextLength)
      If RetValue > 0 Then
           If WinText = "about:blank - Microsoft Internet Explorer" Then                  
               Form1.List1.AddItem WinText
           End If
      End If
      RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)
    Loop Until RenHWND = 0
    End Sub
      

  9.   

    If RetValue > 0 Then
        WinTextLength = GetWindowTextLength(RenHWND)
        If Left$(WinText, WinTextLength) = "about:blank - Microsoft Internet Explorer" then                  
               Form1.List1.AddItem WinText
           End If
      

  10.   

    谢谢~瞎子爷好了!自己做个记录,开始给分!
        RenHWND = GetWindow(Form1.hwnd, GW_HWNDFIRST) '取第一个窗口句柄
    Do
        WinText = String$(255, vbNullChar)
        WinTextLength = Len(WinText)
        RetValue = GetWindowText(RenHWND, WinText, WinTextLength)
      If RetValue > 0 Then
            WinTextLength = GetWindowTextLength(RenHWND)
          If Left$(WinText, WinTextLength) = "about:blank - Microsoft Internet Explorer" Then
             Form1.List1.AddItem WinText
           End If
      End If
      RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)  'GW_HWNDNEXT的值为“2”,也许是移动到下个程序
    Loop Until RenHWND = 0
    End Sub