我想列出桌面上所有"新建文本"窗口的句柄下面是我的代码
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
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个循环为什么又嵌套了,Sorry,我不经常用这样的写法,觉得太难理解了.
do...until 没有匹配,if ...end if也有没匹配,不知道这样的程序能用不?其他错误一时还没看出来
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
RetValue = GetWindowText(RenHWND, WinText, 256)
''RenHWND这个句柄一值是空的怎么可能取出值来???
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)
这是上面部分!
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
WinText = String$(255, vbNullChar)
WinTextLength = Len(WinText)
RetValue = GetWindowText(RenHWND, WinText, WinTextLength)
If RetValue > 0 Then
是不我这样的做法跟本就是错的!!!!!!!!!!!!!!!!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
WinTextLength = GetWindowTextLength(RenHWND)
If Left$(WinText, WinTextLength) = "about:blank - Microsoft Internet Explorer" then
Form1.List1.AddItem WinText
End If
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