Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Активировать чужое окно 
:(
    Опции темы
AlanFree
Дата 18.1.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Код

type
  TForm1 = class(TForm)
    Button1: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
    procedure OnAct(var Msg:TMessage); message WM_ACTIVATEAPP;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnAct(var Msg:TMessage);
begin
if BOOL(Msg.WParam) then
 begin
 ShowMessage('!'+IntToStr(Msg.LParam));
 //в lParam находится идентификатор процесса, с которого пришел фокус 
 //(который только что был деактивирован)
 end;
end;


Мое приложение скрыто Form1.Visible:=False , при выполнении некоторых операций оно все равно отбирает фокус у другого приложения. 
С помощью кода который я привел я получаю индификатор окна у которого мое приложение забрало фокус. Как с помощью этого индификатора програмно активировать это чужое окно?
PM MAIL   Вверх
Sunvas
Дата 18.1.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Самое простое - SetForegroundWindow


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Yanis
Дата 18.1.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111



AlanFree
Может легче не создавать форму вовсе  smile
Или же делать её не Visible := False, а Hide.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 18.1.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Цитата(Yanis @  18.1.2007,  13:09 Найти цитируемый пост)
Или же делать её не Visible := False, а Hide.

А это разве не одно и то же?
Код

procedure TControl.Hide;
begin
  Visible := False;
end;



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Yanis
Дата 18.1.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111



Цитата(Sunvas @  18.1.2007,  15:02 Найти цитируемый пост)
А это разве не одно и то же?

Да одно и тоже. Что-то я погорячился smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
AlanFree
Дата 22.1.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Цитата(Sunvas @  18.1.2007,  12:18 Найти цитируемый пост)
Самое простое - SetForegroundWindow 

не помогает... есть другие варианты? то есть мне нужно активировать чужое окно, при условии что я знаю его хендл


M
Girder
В поиск...

PM MAIL   Вверх
RA
Дата 22.1.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 7
Всего: 115



SetWindowPos( xx ,HWND_TOP, xx, xx, xx, xx ,SWP_FRAMECHANGED);
PM   Вверх
dumb
Дата 22.1.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



предлагаю не играть в "угадайку", а нормально описать задачу.

или читай сам - мсдн: Windows
PM MAIL   Вверх
Romikgy
Дата 22.1.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 13
Всего: 146



Цитата(Sunvas @  18.1.2007,  11:18 Найти цитируемый пост)
SetForegroundWindow 

поддерживаю, только перед всеми действиями (твоими , которые отбирают фокус) имхо надо заюзать
GetForegroundWindow


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sunvas
Дата 22.1.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Цитата(Romikgy @  22.1.2007,  13:01 Найти цитируемый пост)
поддерживаю, только перед всеми действиями (твоими , которые отбирают фокус) имхо надо заюзать
GetForegroundWindow

Ну как найди хэндл - это не проблема. Есть множество вариантов.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
AlanFree
Дата 22.1.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



RA,  пасибо вроде работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.