Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #86, ФЕВРАЛЬ 2006 г.

Дрессированные окна

Александр Гайша

Хакер, номер #086, стр. 086-116-7


Главное – не пугаться. Вместо большинства параметров можно смело передавать nil или 0. Задать обязательно нужно только lpStartAddress, который задает адрес функции потока.

Для синхронизации потоков применяются функции WaitForSingleObject и WaitForMultipleObject. Их параметры указывают, изменения какого именно объекта ожидать, и максимальное время ожидания (бесконечное ожидание задается ключевым словом INFINITE).

мучаем текст окна

Текст окна можно считывать и устанавливать. Для обычного окна текст отображается в его заголовке, для кнопки – на ней самой, для текстового поля – введен в текстовое поле. Считывается текст окна API-функцией GetWindowText (аргументы – хэндл окна типа HWND, указатель на буфер, принимающий текст окна, и размер этого буфера в байтах типа Integer). Устанавливается текст окна функцией SetWindowText, принимающей те же самые параметры, только без длины буфера.

Второй способ чтения/установки текста окна – посылка ему сообщения WM_GETTEXT/WM_SETTEXT. Тогда lParam – адрес буфера со строкой, а wParam - его размер в байтах (для WM_SETTEXT размер буфера, понятное дело, не нужен и wParam=0).

CD

Полный исходный код, описанной в статье программы, ты можешь обнаружить на диске.

Назад на стр. 086-116-6  Содержание