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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2014, 17:25   #1
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию Нажатие кнопок в другой программе

Написал программу для нажатия кнопки в другой программе, но срабатывает только когда окно дополнительной программы развёрнуто, как сделать, чтобы можно было нажать кнопку у свёрнутого окна.

Код:
function TForm1.KeyPress: bool;
begin
  if SearchH = 0 then//Проверяем есть ли хендл
    begin
      result:=false;
      showmessage('Кнопка не найдена');
      exit;
    end;

  {//
  SendMessage(SearchH,WM_KeyDown,VK_Space,0); //нажимаю пробел
  SendMessage(SearchH,WM_KeyUp,VK_Space,0); //отпускаю пробел
  }
  SendMessage(SearchH, BM_CLICK,0,0);//просто кликаю(класс Button)
  result:=true;
end;
хендл SearchH точно верный, единственное отличие у этой кнопки у развёрнутого и свёрнутого окна в IsWindowVisible(SearchH) возвращает true и false соответственно.
Подскажите
1)С каким SendMessage() кнопка будет работать у свёрнутого окна или просто какое лучше использовать?
2)Как сделать нужную мне кнопку "видимой" программно?
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 04.11.2014, 17:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не ошибаюсь такие сообщения как Клик можно послать только видимому окну. Если оно свернуто то и сообщения обрабатываться не будут.
Ставь виртуальную машину. На ней заряжай автокликер своей доты и виртуалку можешь уже сворачивать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2014, 17:42   #3
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Это не дота, а халявный интернет биллайн!
Я уже думал как вариант программу модема вообще не сворачивать, но вдруг кто-нибудь(а кое кто может) за комп сядет и свернёт.

так есть какой - нибудь вариант со свёрнутым окном?
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 04.11.2014, 17:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
есть какой - нибудь вариант со свёрнутым окном?
Сомневаюсь...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2014, 18:03   #5
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Ну тогда буду программно отключать мышь с клавиатурой(от греха подальше),разворачивать программу модема, потом нажимать нужные кнопки ,сворачивать программу, включать мышку с клавиатурой.
А есть смысл через дисассемблер искать нужную мне функцию нужной кнопки и вызывать через мою программу или уже не заморачиваться?
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 04.11.2014, 19:28   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
буду программно отключать мышь с клавиатурой
...за что и получишь парукам-да-палицу от разяренных пользователей )
Цитата:
А есть смысл через дисассемблер
А ты умеешь крякать программы? Если да то пробуй, если нет то ответ очевиден )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2014, 19:43   #7
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
...за что и получишь парукам-да-палицу от разяренных пользователей )
Я знаю для какого пользователя эта программа. Он когда смотрит фильм или сидит в VK и видит раскрывающееся окно сразу жмёт на крестик с криками "что за ...ня! Я её не просил!!!" , а потом удивляется что ничего не работает.
Нет управления - нет проблем!
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 04.11.2014, 20:00   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ха! А ты представляешь себе какое будет моргание при просмотре фильма когда это окно будет всплывать?
Короче я не понимаю зачем это все нужно такие муки...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2014, 20:15   #9
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

По сути всё работает следующим образом:
в нужный момент открывается программа модема, быстренько сама нажимается кнопочка, открывается ещё одно окошечко на 10 секунд, всё прячется.
А заморачиваюсь, потому что хочу чтобы всё работало автоматически, желательно скрытно, и чтобы пользователь СЛУЧАЙНО НИЧЕГО НЕ ИСПОРТИЛ.
Как вариант разворачиваем нужные окна, ставим позицию окна за пределы экрана, делаем что нужно, возвращаем всё как было.
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие кнопок glebast Помощь студентам 0 03.04.2012 21:08
Нажатие кнопок на клавиатуре. glebast Общие вопросы Delphi 2 28.12.2011 18:36
нажатие кнопки в другой программе Pein95 Общие вопросы C/C++ 6 20.06.2011 22:56
нажатие кнопок Nitrino Win Api 2 07.01.2010 22:43
Нажатие кнопок SeregaIRK Компоненты Delphi 9 18.09.2008 18:13