Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

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


Ответ
 
Опции темы
Старый 07.05.2013, 16:24   #1
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию Кликв чужом приложении

Приветствую обитателей!
Вопрос такой. Пытаюсь отправить клик в стороннее приложение, но чего-то не слушается меня код =(
На примере пэйнта:

Код:
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);
alfikss вне форума Ответить с цитированием
Старый 07.05.2013, 18:23   #2
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

Видимо у самого поля для рисования другой хендл вот так работает норм

Код:
procedure TForm1.Timer1Timer(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;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
sendmessage(StrToInt(Lwnd1.Caption), WM_LBUTTONDOWN, MK_LBUTTON, (400 shl 16) + 400);
sleep(1000);
sendmessage(StrToInt(Lwnd1.Caption), WM_LBUTTONUP, MK_LBUTTON, (400 shl 16) + 400);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
end;
Курсор наведите на поле ввода Shift потом уже можно клик посылать
Или через WinSight или Spy++ узнавай нужный HWND
ClMlD вне форума Ответить с цитированием
Старый 07.05.2013, 18:35   #3
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Что есть Lwnd1?
alfikss вне форума Ответить с цитированием
Старый 07.05.2013, 18:36   #4
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Понял. Спасибо, работает
alfikss вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клик в чужом приложении SunnyDay Общие вопросы Delphi 5 31.10.2011 15:12
прочикать чекбоксы в чужом приложении offname C# (си шарп) 2 27.08.2011 14:13
Окно в чужом приложении? Volkogriz Общие вопросы Delphi 3 10.02.2009 19:22
Определить раскладу в чужом приложении. Василий Общие вопросы Delphi 3 02.01.2009 22:30