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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 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 вне форума Ответить с цитированием
Ответ


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



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