Сегодня 17 октября 2026
18+
MWC 2018 2018 Computex IFA 2018
реклама
Программное обеспечение

Самый быстрый способ получить заголовок окна в Windows NT/2000

Автор: Ашот Оганесян

В продолжении моей предыдущей статьи, я решил описать еще одну интересную и по каким-то причинам недокументированную ф-цию из библиотеки User32.dll.

Я обнаружил эту ф-ции исследуя NT Task Manager (Диспетчер Задач). Надо сказать, эта программа содержит большое кол-во недокументированных ф-ций и безусловно представляет огромный интерес для исследователя внутренностей ОС. Ф-ция InternalGetWindowText обеспечивает самый быстрый механизм получения заголовка указанного окна. Эта ф-ция очень похожа на документированную GetWindowText, но в отличии от последней работает только с юникодом и реализованна через вызов прерывания INT 2E (т.е. не использует априори медленный механизм оправки/получения сообщений), что конечно, значительно повышает скорость. InternalGetWindowText существует и в Windows 95/98, но только как заглушка и вся ее реализация заключается в установке ошибки ERROR_CALL_NOT_IMPLEMENTED и возврате FALSE.

Вот прототип для ф-ции InternalGetWindowText:

BOOL InternalGetWindowText (
HWND hWnd, // описатель окна
LPWSTR lpString, // указатель на буфер, куда записывается заголовок (только юникод!!!)
int nMaxCount, // максимальное кол-во символов, копируемое в буфер
);

Естественно нам придется динамически загружать ф-цию, напрямую из User32.dll:

typedef BOOL (WINAPI *PROCINTERNALGETWINDOWTEXT)(HWND,LPWSTR,int);

PROCINTERNALGETWINDOWTEXT InternalGetWindowText;

HMODULE hUser32 = GetModuleHandle("user32");

InternalGetWindowText = (PROCINTERNALGETWINDOWTEXT)
GetProcAddress(hUser32,"InternalGetWindowText");

Для меня остается загадкой, зачем разработчики (а может менеджеры?) спрятали эту ф-цию? Еще одна странность - почему в реализации ф-ции GetWindowText не использована InternalGetWindowText (как это часто делается со многими другими ф-циями Win32 API, внутри реализованными через вызов ф-ций Native API)?

Ну что же, теперь мы все можем и все умеем, осталось только написать маленький работающий пример: fastgetwndtext.zip (15Kb)

Оригинал этой статьи на английском языке лежит здесь: Trick 3

Не документированные ф-ции Windows NT и Windows 95/98 и описания на английском языке: www.codepile.com

Было интересно? Скажите об этом Google, чтобы чаще получать ссылки на наши новости про другое
 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

window-new
Soft
Hard
Тренды 🔥
Anthropic предложила американским законодателям собственный законопроект о регулировании отрасли ИИ 5 ч.
Глава Nvidia призвал отрасль не мириться с инцидентами в сфере безопасности, вызванными ИИ 6 ч.
Новая статья: Songs of Glimmerwick — песнь песней. Рецензия 12 ч.
Снуп Догг засветился в новом трейлере криминального боевика Stranger Than Heaven от авторов Yakuza 14 ч.
ИИ может стать «слишком супер»: команда Трампа взялась за риски искусственного интеллекта 15 ч.
Менее чем за десять месяцев 2026 года в Steam уже вышло больше игр, чем за весь 2025-й 15 ч.
Meta выпустила мощную открытую ИИ-модель Muse Spark Open — для её работы хватит всего двух Mac Studio 15 ч.
ИИ-модель Z.ai GLM-5.3 заподозрили в имитации безопасного поведения для прохождения тестов 16 ч.
Линус Торвальдс выпустил первый патч для Linux, написанный с ИИ — синтетический тест показал ускорение в 23 раза 16 ч.
Суд показал, какие данные пользователей Telegram раскрывает по запросам властей США 16 ч.
«Дешёвые и никудышные»: глава Apple объяснил, почему компания так долго не выпускала складной iPhone 27 мин.
Открыта первая в истории зелёная звезда, но астрономам придётся поверить на слово 43 мин.
SP Industrial анонсировала шесть SSD на eTLC-памятью и ресурсом до 3 DWPD 2 ч.
TP-Link предложила вложить $1 млрд в производство в США ради допуска новых роутеров на рынок 3 ч.
Пришвартованные серверы: японский консорциум начал строить плавучие ЦОД 3 ч.
ИИ-пузырь сдувается: акции производителей чипов падают на протяжении восьми дней подряд 7 ч.
«Выделенка» для ИИ: южнокорейская KT запустила 800G-каналы для ЦОД 11 ч.
Samsung и AMD представили CXL-пул DRAM для ИИ-инференса 11 ч.
Электроника может стать сверхпроводящей — учёные придумали, как поставить квантовые вихри на рельсы 11 ч.
Впервые в оптоволокне свет столкнулся со звуком — квантовые компьютеры дождались прорыва 15 ч.