Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Помогите разобраться в тексте... Добавлено: 18.07.03 14:07  

Автор вопроса:  NovichoK

Option Explicit

' Required Win32 API Declarations
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const GWL_HWNDPARENT = (-8)
Private Const LB_ADDSTRING = &H180
Private Const LB_SETITEMDATA = &H19A
Private m_hWnd As Long
Function FillTaskListBox(lst As ListBox)
lst.Clear
Call EnumWindows(AddressOf EnumWindowsProc, lst.hWnd)
FillTaskListBox = lst.ListCount
End Function

Private Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
  
Static WindowText As String
   Static nRet As Long
    

If IsWindowVisible(hWnd) Then
      If GetParent(hWnd) = 0 
         If GetWindowLong(hWnd, GWL_HWNDPARENT) = 0 
            WindowText = Space$(256)
            nRet = GetWindowText(hWnd, WindowText, Len(WindowText))
                     
            If nRet Then
                              WindowText = Left$(WindowText, nRet)
               nRet = SendMessage(lParam, LB_ADDSTRING, 0, ByVal WindowText)
               Call SendMessage(lParam, LB_SETITEMDATA, nRet, ByVal hWnd
)
            End If
         End If
      End If
   End If
     
      EnumWindowsProc = True
End Function

Прошу объяснить выделенные строки!

1-ая - что эт объявляется, неясно!

2-ая - зачем там опреатор adressof, что нельзя было сразу писать

call EnumWindowsProc (lst.hWnd)
3-ая - что такое Iparam - и если можно по-популярнее, мне уже отвечали на этот вопрос но я ничего не понял!

4,5  -  тоже поподробнее

6 - неясно функции типа long а мы ей true присваеваем!

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #1 Добавлено: 19.07.03 12:35

Ну помогите же!!!!!!!!!!!!!!!!!!!!!!!!!!!11

Могу облегчить разбор текста сказав, что этот модуль выводит на экран список активных приложений!

Функция IsWindowVisible проверяет видно ли нам это окно

Функция GetParent проверяет если у окна дочерные окна

Функция GetWindowLong проверяет если у окна хазяин

Переменная nRet поначалу отвечает за количество символов в тексте а потом хрен знает за что...

Пременная  windowstext  отвечает за текст окна 

Ответить

Номер ответа: 2
Автор ответа:
 ZeroX



ICQ: 220401330 

Вопросов: 47
Ответов: 406
 Профиль | | #2 Добавлено: 19.07.03 12:48

nRet = SendMessage(lParam, LB_ADDSTRING, 0, ByVal WindowText)

Call SendMessage(lParam, LB_SETITEMDATA, nRet, ByVal hWnd)

С помощью этого куска кода происходит добавление WindowsText в список
           

Ответить

Номер ответа: 3
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #3 Добавлено: 19.07.03 14:24

Да что происходит ясно! Да вот по-конкретнее бы....

Спасибо что пытался помочь...

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 19.07.03 22:49
1. Это выдрано из User Controla. Используется для PropertyLet/Get. Можешь удалить.
2. AddressOf используется как указатель на повторяющуюся (callBack в Си) функцию.
Она будет повторяться до тех пор пока значение функции не будет равно False.
В VB3 вообще не было ни True, ни False, ни VbЧтоУгодно.
Делалось так: Const True=-1,False=0

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 19.07.03 22:52

Могу тебе курсы устроить.

Ты в каком раойне живешь?

Ответить

Номер ответа: 6
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #6 Добавлено: 21.07.03 13:14

А ты что в Днепре живешь?

В Ленинском на Красном Камне

Ответить

Номер ответа: 7
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #7 Добавлено: 21.07.03 13:23

Вот только припознился ты с объяснениями, тут пока докричишься и самому разобраться можно!

Ну все равно спасибо что откликнулся!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам