![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Заголовок окна имеет динамическую форму: xxxx yyyyy, xxxx статический текст а yyyyy динамический. вот функция для получения хендла окна
Код:
function GetListViewHandle(WndName: string): THandle;
begin
Result := FindWindowEx(0, 0, 'xxxx', PAnsiChar(WndName));
if Result = 0 then
raise Exception.Create('xxxx хендл');
end;она видит только xxxx, вопрос как приклееться к xxxx а yyyyy останеться динамическим? |
|
#2
|
||||
|
||||
|
Код:
const x = 'xxxxx'; var y, s: String; begin y:= 'динамика'; s:= x + y; //далее ищем окно с названием s; end; Может так ещё: Код:
Function FindWnd(S: String): HWND;
Var
Wnd: HWnd;
buff: Array [0..127] of Char;
begin
FindWnd:= 0;
Wnd:= GetWindow(Form1.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
FindWnd:= Wnd;
Break;
end;
end;
Wnd:= GetWindow(Wnd, gw_hWndNext);
end;
end;Последний раз редактировалось AND_REY, 29.07.2011 в 15:32. |
|
#3
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject); const x = 'Windows'; var y, s: String; begin y:= ' Task Manager'; s:= x + y; //äàëåå èùåì îêíî ñ íàçâàíèåì s; Memo1.Lines.CommaText := GetItemsText(GetListViewHandle(S)); end; не совсем понимаю, y должно быть переменной |
|
#4
|
||||
|
||||
|
Да, первая часть константа вторая - переменная, это если мы знаем как меняется переменная часть. Пример ('Окно номер =' - константа, '23' - переменная от 0-99). Если незнаем ничего о переменной части то используй вторую функцию FindWnd - по части названия окна возвращает его HWND.
|