С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 20.09.2007
Сообщений: 62

Процедура получения списка всех программ и окон

30.09.2008, 14:26. Показов 4054. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выдрал пример из книги по использованию API в VB. Но почему-то толком не работает. Помогите разобраться.
Вот код процедуры. Я опустил декларации переменных, все равно дело не в них
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Private Function GetWindowDesc$(hwnd&)
    Dim desc$
    Dim tbuf$
    Dim inst&   ' Now a long
    Dim dl&
    Dim hWndProcess&
 
    ' Include the windows handle first
    desc$ = '&H' + Hex$(hwnd) + Chr$(9)
 
    ' Get name of source app
    tbuf$ = String$(256, 0) ' Predefine string length
    'Получаем Ид процесса
    dl& = GetWindowThreadProcessId(hwnd&, hWndProcess)
    'Получаем Ид программы запустившей процесс
    inst& = GetWindowLong(hwnd&, GWL_HINSTANCE)
    'Получаем имя файла программы
    dl& = GetModuleFileName(inst&, tbuf$, 255)
    If InStr(tbuf$, Chr$(0)) Then tbuf$ = Left$(tbuf$, InStr(tbuf$, Chr$(0)) - 1)
    desc$ = desc$ + tbuf$ + Chr$(9) + Chr$(9)
    'Получаем заголовок окна
    tbuf$ = String$(256, 0) ' Initialize space again
    dl& = GetWindowText(hwnd&, tbuf$, 255)
    If InStr(tbuf$, Chr$(0)) Then tbuf$ = Left$(tbuf$, InStr(tbuf$, Chr$(0)) - 1)
 
    ' And return the description
    GetWindowDesc$ = desc$
 
End Function
 
Private Sub FillList()
Dim hwnd&
 
    WinList.Clear
    'Получаем hwnd рабочего стола
    hwnd& = GetDesktopWindow()
    
    'Открываем чтение списка окон рабочего стола
    hwnd& = GetWindow(hwnd&, GW_CHILD)
    
    'Читаем список окон
    Do
        WinList.AddItem GetWindowDesc$(hwnd&)
        hwnd& = GetWindow(hwnd&, GW_HWNDNEXT)
    Loop While hwnd& <> 0
End Sub
Почему-то неправильно выбираются имена файлов программ. В основном пролезает VB6.exe или просто пустое имя, хотя точно знаю что запустил программу не VB.
В книге, откуда я выволок этот пример авторы здорово выкрутились. Они сравнивают Ид процесса своей программы и полученный Ид процесса. И если они разные то вместо имени файла пишут 'Не наш процесс'.
Может есть какие-то особенности использования этих функций?
Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2008, 14:26
Ответы с готовыми решениями:

Изменение заголовков окон всех запущенных программ
Подскажите, пожалуйста, или дайте пример кода, где с помощью механизма сообщений можно изменять заголовки сторонних запущенных программ (те...

Как получить размеры окон всех запущенных программ и их имена?
Как получить размеры окон всех запущенных программ и их имена?

Выведение списка заголовков всех окон с рабочего стола
Здравствуйте всем, требуется помощь по выведению списка всех существующих на рабочем столе окон (их заголовки). Использовать для этого...

1
1 / 1 / 0
Регистрация: 20.09.2007
Сообщений: 62
05.10.2008, 12:31  [ТС]
Подниму ветку. Ответа я так и не нашел.
Запускал эту программу под МЕ и под NT. Результат один и тот же.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2008, 12:31
Помогаю со студенческими работами здесь

Php код для получения списка всех постов с указанием меток
Как получить список всех постов 1.С указанием даты 2.Отсортированных по дате 3.С указанием меток в которые они входит. т.е. что...

Процедура удаления из списка всех вхождений заданного элемента
Написать программу, процедуру удаления из заданного списка, все вхождения элемента с заданным значением.

Появление посторонних окон с рекламой на всех сайтах, во всех браузерах
На днях тут скачал &quot;майкрософт офис&quot; якобы и после установки мне предложили ввести смс. Я сразу закрыл установщик и удалил всё что с ним...

Ограничение раскрывания окон программ
День добрый всем. Подскажите, как можно замутить такую фишку? Есть программка, представляющая собой вытянутую по верху экрана форму. Как...

Активность окон сторонних программ
Как при открытых 2-х - 3-х программ (с одинаковым названием) назначить кнопке делать активным то или иное окно?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru