Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/26: Рейтинг темы: голосов - 26, средняя оценка - 4.50
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139

SendMessage, отправка клика в стороннее приложение

07.05.2013, 15:50. Показов 5475. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую обитателей!
Вопрос такой. Пытаюсь отправить клик в стороннее приложение, но чего-то не слушается меня код =(
На примере пэйнта:
Delphi
1
2
3
4
5
6
h:=findwindow(nil, PChar('Безымянный - Paint'));
if h<>0 then showmessage('+') else showmessage('-');
//SetForegroundWindow(h);
sendmessage(H, WM_LBUTTONDOWN, MK_LBUTTON, 400 + 400 shl 16);
sleep(1000);
sendmessage(H, WM_LBUTTONUP, MK_LBUTTON, 400 + 400 shl 16);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2013, 15:50
Ответы с готовыми решениями:

Отправка SendMessage для клика по координатам внутри формы, при этом не передвигать курсор
Необходимо кликнуть по координатам внутри формы,при этом не передвигать курсор. Полазив по форумам я понял что реализовать это можно...

Отправка данных в стороннее приложение
Доброго времени суток! Хотелось бы узнать, как сделать так чтобы например в текстбокс было введено имя программы, а по имени, в результате...

Отправка текста в стороннее приложение
Я знаю возможно эту тему уже обсуждали много раз,но я всё равно не могу ничего понять, если можно разжуйте) И так вот сама проблема, у...

30
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33478 / 21576 / 8250
Регистрация: 22.10.2011
Сообщений: 37,034
Записей в блоге: 12
07.05.2013, 17:49
Студворк — интернет-сервис помощи студентам
Нет, там именно 160 тысяч:
Миниатюры
SendMessage, отправка клика в стороннее приложение  
1
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
07.05.2013, 17:52  [ТС]
Цитата Сообщение от angstrom Посмотреть сообщение
Похоже 0 не хватает, 'Afx:1600000:8'
Тоже не то. Хорошо, другой вопрос тогда: 'Afx:1600000:8' где взять этот код и что он значит? Т.к. пэйнт это лишь пример, для того что бы разобраться как отправлять нажатия кнопок мыши. Приложение которому буду отправлять клики другое
0
angstrom
07.05.2013, 17:53
У меня для Win7, выдало 'Afx:f60000:8'.

Я тебе дал ссылку на архив.
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
07.05.2013, 17:58  [ТС]
Дык там только класс показывает. Вон на скрине UI что за приложение?

Добавлено через 2 минуты
Тупанул. Разобрался.
Мой код оказался: "Afx:00000000FF1F0000:8"
0
angstrom
07.05.2013, 18:01
Мда, жёстко класс не пропишешь. 3 версии Win7, и у всех показывает разный класс.
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
07.05.2013, 18:07  [ТС]
Эх...видимо этот способ отправки мне не подойдет))) Приложение, которому надо отправить клики - игра. И класс определяется везде один. А мне нужно нажимать на определенную кнопку(или в определенные координаты, смотря что проще) n-ное кол-во раз.
0
angstrom
07.05.2013, 18:10
Как раз и подойдёт, там класс один и тот же.
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
07.05.2013, 18:57  [ТС]
Стоп. Это наверно тяжелый рабочий день дает о себе знать.

Добавлено через 7 минут
То есть вместо "Afx:00000000FF1F0000:8" мне нужно впилить имя того класса в котором кликать буду?

Добавлено через 6 минут
Не пашет =(

Добавлено через 2 минуты
Окно находит. Клик не проходит

Добавлено через 29 минут
Вообщем решил немножко по другому сделать и получилось. Вот рабочий код.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Timer4Timer(Sender: TObject);
var
  Pos: TPoint;
  Wnd: HWND;
begin
GetCursorPos( Pos );
Wnd := WindowFromPoint( Pos );
if (GetKeyState(VK_SHIFT) and 128) = 128 then
begin
Lwnd1.Caption:=IntToStr(wnd);
Timer1.Enabled:=False;
end;
Delphi
1
2
3
4
5
6
procedure TForm1.Button6Click(Sender: TObject);
begin
sendmessage(StrToInt(Lwnd1.Caption), WM_LBUTTONDOWN, MK_LBUTTON, MakeLong(tp.X, tp.Y-20));
sleep(100);
sendmessage(StrToInt(Lwnd1.Caption), WM_LBUTTONUP, MK_LBUTTON,  MakeLong(tp.X, tp.Y-20));
end;
0
angstrom
07.05.2013, 21:49
Delphi
1
2
GetCursorPos( Pos );
Wnd := WindowFromPoint( Pos );
То же вариант. Хотел предложить, но потом передумал.
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
07.05.2013, 22:46  [ТС]
Цитата Сообщение от angstrom Посмотреть сообщение
Мда, жёстко класс не пропишешь. 3 версии Win7, и у всех показывает разный класс.
Кстати для информации. Сколько раз запускал пэйнт столько раз разный класс показывала та утилитка из архива =)

Добавлено через 2 минуты
Спасибо за помощь
0
angstrom
07.05.2013, 23:04
В XP всегда один и тот же, 7-ка блин.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2013, 23:04

Прием и отправка данных в стороннее консольное приложение
Всем доброго времени суток. Не нашёл раздела для с#, решил создать здесь. Проблема следующая есть консольное приложение, которое...

SendMessage в WinCE (пересылка информации из моего приложения в стороннее)
Добрый день! Подскажите пожалуйста как решить задачу. Среда WinCE 5, compact framework 3.5 Требуется организовать пересылку информации...

Post\Sendmessage сообщение клика окну
Добрый вечер. В общем задача такая: Есть неактивное окно(свернуто). Нужно на него передать клик левой клавишей мыши. ...

Отправка текста через SendMessage
Как отправить текст не в заголовок а в основную часть блокнота??? Если для отправки в заголовок я использую: Использую импорты и...

Отправка сообщения через SendMessage
Здравствуйте,помогите пожалуйста с SendMessage,мне нужно отправить сообщение из моего textbox в textbox другого приложения,подскажите как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru