Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как активировать дочернее окно в чужом приложении?


Павел ©   (2005-01-20 17:00:00) 

Сак осуществить САБЖ?


Павел   (2005-01-21 09:17:00) [1]

И мне так кажется.........Он активирует само окно.....Это я делал с помощью  SetForegroundWindow(Handle) а мне нужно именно дочернее


olookin   (2005-01-20 18:31:00) [2]

procedure FindWnd(finds: string; var findh: hwnd);
var h,h1: hwnd;
   s: string;
   p: array [0..255] of char;
   no,ist: boolean;
begin
 h:=Form1.Handle; h1:=h; no:=false;
 while no=false do begin ist:=false; h:=GetNextWindow(h,GW_HWNDNEXT);
 if h=0 then no:=true; GetWindowText(h,p,255); s:=StrPas(p);
 if s=finds then begin ist:=true; findh:=h; break; end; end;
 h:=h1; no:=false;
 while no=false do begin ist:=false; h:=GetNextWindow(h,GW_HWNDPREV);
 if h=0 then no:=true; GetWindowText(h,p,255); s:=StrPas(p);
 if s=finds then begin ist:=true; findh:=h; break; end; end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var h: Hwnd;
   d,myd: dword;
   c: array [0..255] of char;
begin
 FindWnd('Безымянный - Блокнот',h);
 d:=GetWindowThreadProcessId(h,0);
 myd:=GetWindowThreadProcessId(Form1.Handle,0);
 if AttachThreadInput(d,myd,true) then
 Windows.SetFocus(h);
end;

А что кроме активации Блокнота и передачи ему фокуса делает этот код? По-моему, он совсем не активирует дочернего окна в чужом приложении.


Павел   (2005-01-20 17:15:00) [3]

А примерчик ни у кого не заволялся?


GuAV   (2005-01-20 17:11:00) [4]

AttachThreadInput + SetFocus


Наверх

Титульная страница Поиск, карта сайта Написать письмо