Список окон рабочего стола на C#

Эта программа использует несколько функций API для отображения окон, работающих на рабочем столе системы. Чтобы упростить повторное использование кода, я выполнил ключевые процедуры static в классе static, поэтому вам не нужно создавать экземпляр класса для их использования.

В следующем коде показаны определения API, используемые программой. Они сообщают C#, какие библиотеки содержат указанные методы.

Большинство из них достаточно просты, если немного сложнее. Пока вы не пытаетесь понять каждую деталь, вы должны быть в порядке. Примечание. сайт PInvoke.NET - отличное место для изучения деклараций API.

Большинство из них достаточно просты, если немного сложнее. Пока вы не пытаетесь понять каждую деталь, вы должны быть в порядке. Примечание. сайт PInvoke.NET - отличное место для изучения деклараций API.

...

В следующем коде показаны основные вызовы API.

Этот код определяет списки для хранения дескрипторов и названий окон. Затем он вызывает функцию API EnumDesktopWindows. Эта функция возвращает true, если она успешна, и false в противном случае. Если функция возвращает false, то метод GetDesktopWindowHandlesAndTitles возвращает null списки. Если функция API возвращает true, тогда метод возвращает найденные значения.

Итак, где именно в этом коде обрабатываются дескрипторы окон и заголовки окон в коллекциях WindowHandles и WindowTitles? Это происходит с помощью метода обратного вызова.

Когда код вызывает EnumDesktopWindows, он передает в качестве параметра следующий метод FilterCallback. Функция API EnumDesktopWindows вызывает FilterCallback для каждого найденного окна рабочего стола.

Метод FilterCallback проверяет окна, найденные с помощью функции API EnumDesktopWindows, и затем может что-то с ними делать. В этом примере метод получает заголовок окна и вызывает функцию API IsWindowVisible, чтобы увидеть, видно ли окно. Если окно видно и имеет непустой заголовок, метод сохраняет дескриптор окна и заголовок в списках WindowHandles и WindowTitles.

Метод FilterCallback проверяет окна, найденные с помощью функции API EnumDesktopWindows, и затем может что-то с ними делать. В этом примере метод получает заголовок окна и вызывает функцию API IsWindowVisible, чтобы увидеть, видно ли окно. Если окно видно и имеет непустой заголовок, метод сохраняет дескриптор окна и заголовок в списках WindowHandles и WindowTitles.

...

Источник: http://csharphelper.com/blog/2016/08/list-desktop-windows-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *