C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 1 - Окна Windows и функции доступа к ним / Win 32 API / Win32 API

Шаг 1 - Окна Windows и функции доступа к ним

Мы с Вами в этом шаге каснемся работы с окнами в Windows. У каждого окна есть уникальный идентификатор HWND. Этот идентификатор указывает на окно. Окна в Windows можно представить в виде дерева с корнем в DeskTop. Это легко увидеть запустив SPY (см. "Шаг 47 - Как пользоваться SPY").

1.gif (7184 b)

Итак, как и у любого дерева, у дерева окон есть корень. Получить указатель на него можно функцией GetDesktopWindow(), которая вернет HWND корня в виде рабочего стола. Ага начало есть. Дальше как у того богатыря на картинке. Налево, направо или куда. От текущего HWND можно получить HWND либо ребенка, вот так GetWindow(hwnd, GW_CHILD), либо соседа вот так GetWindow(hwnd, GW_HWNDNEXT). И так далее. Дерево господа и алгоритм его обхода. Имея HWND можно получить заголовок окна GetWindowText. Ну пора. Вот код получения имен окон первого уровня.

// GetWindow.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
    HWND hwnd;
    char p[100];
    hwnd = GetDesktopWindow();
    hwnd = GetWindow(hwnd, GW_CHILD);
    while (hwnd !=0)
    {
     hwnd = GetWindow(hwnd, GW_HWNDNEXT);
     GetWindowText(hwnd,p,100);
     if (strlen(p)>0)  cout << p << endl;
    }

}
А вот результат работы у меня
GetWindow									// это программа наша !!!!
Source File Properties
GetWindow - Microsoft Visual C++ - [GetWindow.cpp]				// Это я делаю программу :-))))
Step1.htm - -ыюъэюЄ							// Это редактируется страница которую вы читаете
C:\WINDOWS\-рсюўшщ ёЄюы\Step1\Step1.htm - Microsoft Internet Explorer 		// Смотрю на то что пишу
Step1									// каталог с нашим шагом
OLEChannelWnd
OLEChannelWnd
OLEChannelWnd
DDE Server Window
OleMainThreadWndName
-юъЁрЄ 97
OLEChannelWnd
-ряюьшэрэшх
+эфшърЄюЁ срЄрЁхщ
WIN95 RPC Wmsg Window
DDE Server Window
OleMainThreadWndName
RPCSSWindow
OleMainThreadWndName
MS_WebcheckMonitor
Program Manager
Press any key to continue

Загрузить проект | |
Автор Каев Артем.
[AD]