Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745

Как быстро перебрать окна по Классу

08.09.2013, 12:34. Показов 1890. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне надо каждые 30 секунд проверять кол-во окон определённого Класса. Ищу так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Sub ÏîèñêÑòîëîâ1()
Dim hwnd& 
hwnd = GetWindow(GetDesktopWindow(), GW_CHILD)
   Do:
    lpClassName = Space(256): retval1 = GetClassName(hwnd, lpClassName, 256):
      If Left$(lpClassName, retval1) = KlaSto Then
         SpiSto(i) = hwnd: KolSto = KolSto + 1:
      End If
    hwnd = GetWindow(hwnd, GW_HWNDNEXT):
   Loop While hwnd <> 0:
End Sub
Но мне не нравится постоянная канитель с определением Класса КАЖДОГО окна Ведь есть простая АПИ для поиска по классу:
Visual Basic
1
hwnd = FindWindow(KlaSto, vbNullString)
Но ОНА "останавливается" сразу после нахождения первого окна Чего я только не пробовал, но так и не "заставил" ЕЁ перебрать все окна Если такое возможно, то подскажите как, плз !!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.09.2013, 12:34
Ответы с готовыми решениями:

Быстро перебрать восьмизначные числа
Добрый день. Такая проблема: Есть восемь цифр от 0 до 8, нужно все их перебрать. Сделал примитивно: for (int i = 0; i &lt; 9; i++) ...

Как убрать часть данных, чтоб быстро настроить положение и ширину окна обработки массива?
Есть программа обработки сигнала (поляризационный анализ сейсмической волны), есть сигнал. На рисунке показано резкое увеличение значение...

Найти хендл второго (а не первого) окна по заданному классу
Помогите пожалуйста обшарил весь интернет и не нашел ответа как мне вписать строку во второе поле edit ? я написал программу которая ищет...

3
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
08.09.2013, 15:06
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
1
FindWindowEx
Добавлено через 7 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
 
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
 
Private Sub Form_Load()
    Dim hwnd As Long, ClassName As String
    
    ClassName = "SciCalc"
    Do
        hwnd = FindWindowEx(0, hwnd, ClassName, vbNullString)
        If hwnd Then Debug.Print hwnd
    Loop While hwnd
End Sub
2
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
08.09.2013, 17:17  [ТС]
The trick, Спасибо !!! Разница по времени поражает !! (как я и подозревал, видя притормаживание). Резалт на картинке...
Сверху при FindWindowEx (1000 циклов (после компиляции))
Изображения
 
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
08.09.2013, 19:01  [ТС]
Апострофф, Спасибо за правку !! Сам хотел ответить через КликПоНику, но в таком режиме отсутствует возможность прикрепить вложение (желательно доработать)
Пардон, нашёл - расширенный режим...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2013, 19:01
Помогаю со студенческими работами здесь

Как перебрать ячейки?
Здравствуйте, помогите мне пожалуйста, мне нужно придумать, как реализовать скрипт, подкиньте идею, а отсортировать нужно по типу ...

Как перебрать числа
Есть три переменные - a, b, c. Надо чтобы на их места по очереди вставали все целые числа, то есть чтобы в процессе участвовали все...

как перебрать QStandardItemModel
Есть QStandardItemModel *model; Он как-то наполняется (с этим нормально...) Теперь хочу все из него изьять. Делаю так: ...

Как перебрать массив из fetchAll() ?
День добрый! Знакомлюсь с PDOstatement. Как я понял fetchALL() выдаёт массив. Как можно перебрать этот массив? Пример ниже не...

Как перебрать весь массив?
Был когда-то json после его декодирования и вывода через var_dump($info); получился вот такой массив. массив (сокращенная версия): ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru