Я нахожу окошко по неполному названию следующей функцией:
| Код | function TForm1.Find(s: string): hWnd; var Wnd: hWnd; buff: array[0..127] of Char; begin Find := 0; Wnd := GetWindow(Handle, gw_HWndFirst); while Wnd <> 0 do begin if (Wnd <> Application.Handle) and IsWindowVisible(Wnd) and (GetWindow(Wnd, gw_Owner) = 0) and (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) then begin GetWindowText(Wnd, buff, sizeof(buff)); if pos(s, StrPas(buff)) > 0 then begin Find := Wnd; Break; end; end; Wnd := GetWindow(Wnd, gw_hWndNext); end; end;
|
Обычно, окно выше все остальных я ставлю так:
| Код | SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height , SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
|
Что-то заблудился в типах как мне из Wnd получить handle??? Или что-то еще можно придумать? |