|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Windows Hider: КАК?
Жизнь, работа и пара лишних окон вынуждают создать что-то вроде Windows Hider'а. Существующие аналоги не обсуждаются, ибо мне надо в своей проге отлавливать кое-какие данные из спрятанных окон (с обработкой этих данных). Отлов и скрытие я уже научился делать, но прикол в том, что окно определяется только по вручную введённым хандлерам (которые я выловил полу-хакерским методом).
На форуме читал, вроде надо копать к EnumWindows или к чему-то этому... Короче, вот что мне от вас нужно: 1. Функция, перечисляющая хендлы открытых окон. (возврат в array of THandle) 2. Функция, возвращающая заголовок окна по его хендлу. Остальное как-нибудь сооружу сам. Спасибки за любую помощь обеспечены. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#2
|
||||
|
||||
Цитата:
Цитата:
Цитата:
Цитата:
|
#3
|
||||
|
||||
спасиб конеш, но хотелось бы узнать про EnumWindows поподробнее, ибо с WinAPI я почти нулевой, а с английским напряжонка...
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#4
|
|||
|
|||
Код:
type THandleAndText = record _Handle: HWND; // дескриптор окна _Text: string; // заголовок end; .............. var Form1: TForm1; HandlesAndTexts: array of THandleAndText; // массив, где всё сохраняется function EnumWndProc(hndl: HWND; lprm: LPARAM): BOOL; stdcall; .............. function EnumWndProc(hndl: HWND; lprm: LPARAM): BOOL; stdcall; var WndTxt: PChar; PrevLen: Integer; begin GetMem(WndTxt, 255); try PrevLen := Length(HandlesAndTexts); SetLength(HandlesAndTexts, PrevLen + 1); GetWindowText(hndl, WndTxt, 255); HandlesAndTexts[PrevLen]._Handle := hndl; HandlesAndTexts[PrevLen]._Text := StrPas(WndTxt); Result := True; finally FreeMem(WndTxt, 255); end; end; procedure TForm1.Button1Click(Sender: TObject); begin EnumWindows(@EnumWndProc, 0); end; |
#5
|
||||
|
||||
Еще может пригодиться WindowFromPoint()
...сказал, и загрустил от бесспорной своей правоты |
#6
|
||||
|
||||
Агромное спасибо.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |