Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2011, 09:06   #1
DennerV
Пользователь
 
Регистрация: 14.05.2009
Сообщений: 44
Вопрос Вызывающее окно становится неактивным

Даброе время суток. Суть проблемы такая:
есть программа "X", в программе имеются 2 кнопки "Старт" и "Стоп".
Моя программа находит хендл окна "X", кнопку "Старт" и посылает ей сигналы (нажатие).
После нажатия кнопки "Старт" программа становится неактивной и на форме все исчезает, остается только заголовок.
Код:
procedure TForm1.StartClick;
Var TrayWnd, PanWnd, BtnWnd: hWnd;
    Str:String;
begin
  if EXE_Running('em5svr.exe', False) then
    Begin
      If FindWindow('Tem5svrlog', 'Сервис закачки сканов v11') <> 0 then
        Begin
          TrayWnd:=FindWindow('Tem5svrlog', 'Сервис закачки сканов v11');
          PanWnd:=FindWindowEx(TrayWnd,0,'TPanel', nil);
          BtnWnd:=FindWindowEx(PanWnd,0,'TButton', 'Start'});
          SendMessage(BtnWnd, BM_CLICK, 0, 0);
       end;
end;
При этом по моему перестает работать....процедура по кнопке "Стоп" не срабатывает. Если я в ручную надимаю "Стоп", форма опять становится активной. Ума не приложу в чем дело.....подсткажите, как сделать форму активной?

Код:
procedure TForm1.StopClick;
Var TrayWnd, PanWnd, BtnWnd: hWnd;
begin
 if EXE_Running('em5svr.exe', False) then
    Begin
      If FindWindow('Tem5svrlog', 'Сервис закачки сканов v11') <> 0 then
        Begin
          TrayWnd:=FindWindow('Tem5svrlog', 'Сервис закачки сканов v11');
          PanWnd:=FindWindowEx(TrayWnd,0,'TPanel', nil);
          BtnWnd:=FindWindowEx(PanWnd,0,'TButton', 'Stop');
          SendMessage(BtnWnd, BM_CLICK, 0, 0);
        end;
    end;
end;
DennerV вне форума Ответить с цитированием
Старый 01.03.2011, 09:44   #2
DennerV
Пользователь
 
Регистрация: 14.05.2009
Сообщений: 44
По умолчанию

Вопрос отменяется .....
Просто вместо SendMessage(BtnWnd, BM_CLICK, 0, 0); написал PostMessage(BtnWnd, BM_CLICK, 0, 0);....заработало
DennerV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пополнение базы вызывающее расчет NAN БД в Delphi 1 20.04.2010 14:55
Белый цвет становится прозрачным в некоторых местах Crystallon Общие вопросы Delphi 5 05.04.2010 18:13
ДВ становится сырьевым придатком Китая Last Свободное общение 12 24.10.2009 06:45
Label не становится видимым. Kashp Компоненты Delphi 7 26.08.2007 22:34