Страница: 1 |
Option Explicit ' Required Win32 API Declarations Private Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long If IsWindowVisible(hWnd) Then Прошу объяснить выделенные строки! 1-ая - что эт объявляется, неясно! 2-ая - зачем там опреатор adressof, что нельзя было сразу писать call EnumWindowsProc (lst.hWnd) 4,5 - тоже поподробнее 6 - неясно функции типа long а мы ей true присваеваем!
Ну помогите же!!!!!!!!!!!!!!!!!!!!!!!!!!!11 Могу облегчить разбор текста сказав, что этот модуль выводит на экран список активных приложений! Функция IsWindowVisible проверяет видно ли нам это окно Функция GetParent проверяет если у окна дочерные окна Функция GetWindowLong проверяет если у окна хазяин Переменная nRet поначалу отвечает за количество символов в тексте а потом хрен знает за что... Пременная windowstext отвечает за текст окна nRet = SendMessage(lParam, LB_ADDSTRING, 0, ByVal WindowText) Call SendMessage(lParam, LB_SETITEMDATA, nRet, ByVal hWnd) С помощью этого куска кода происходит добавление WindowsText в список Да что происходит ясно! Да вот по-конкретнее бы.... Спасибо что пытался помочь... Могу тебе курсы устроить. Ты в каком раойне живешь? А ты что в Днепре живешь? В Ленинском на Красном Камне Вот только припознился ты с объяснениями, тут пока докричишься и самому разобраться можно! Ну все равно спасибо что откликнулся! Страница: 1 |
Вопрос: Помогите разобраться в тексте...
Добавлено: 18.07.03 14:07
Автор вопроса: NovichoK
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
Static WindowText As String
Static nRet As Long
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
3-ая - что такое Iparam - и если можно по-популярнее, мне уже отвечали на этот вопрос но я ничего не понял!
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
NovichoK
Вопросов: 72
Ответов: 147
Профиль | | #1
Добавлено: 19.07.03 12:35
Номер ответа: 2
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #2
Добавлено: 19.07.03 12:48
Номер ответа: 3
Автор ответа:
NovichoK
Вопросов: 72
Ответов: 147
Профиль | | #3
Добавлено: 19.07.03 14:24
Номер ответа: 4
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #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