![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Активация другой программы программно (вывести на первый план). [D7, XP]
worldmen © (2009-07-14 16:20:00)Нужно вывести другую программу на первый план. Я знаю как вывести свою, а чужую незнаю:
Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO BEGIN
IF (Wnd <> Application.Handle) AND (GetWindow(Wnd, gw_Owner) = 0)
THEN BEGIN
GetWindowText (Wnd, buff, sizeof (buff ));
IF StrPas (buff) = Application.Title THEN
BEGIN
MessageDlg('Приложение уже загружено', mtWarning, [mbOk], 0);
SetForegroundWindow(Wnd); // Активизируем
Halt;
END;
END;
Wnd := GetWindow (Wnd, gw_hWndNext);
END;
TStas (2009-07-14 23:39:00) [1]Я искал.
h := FindWindow(nil, Pchar('Заголовок чужого окна'));
Как выносить мне в этой же ветки ответили. Активизировать SetForegroundWindow(h)
Claus (2009-07-14 18:53:00) [2]Что-то вроде:
var h: hWnd;
...
h := FindWindow(nil, Pchar('Другая программа.exe'));
if h <> 0 then
begin
SendMessage(h, WM_SYSCOMMAND, SC_HOTKEY, h);
BringWindowToTop(h);
end;
clickmaker (2009-07-14 17:38:00) [3]FindWindow()
b/@. (2009-07-14 16:39:00) [4]Точно так же - только сначала нужно её найти с помощью EnumWindows.