|
Клик мышью в свернутом окне ПВ - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
16.11.2014, 04:01
|
#1
|
|
|
|
Сержант
|
Регистрация: 16.02.2012
Сообщений: 105
Популярность: 651
Сказал(а) спасибо: 19
Поблагодарили 39 раз(а) в 31 сообщениях
|
Клик мышью в свернутом окне ПВ
Иногда приходится сталкиваться с ситуацией, когда нужно что-то сделать, а найти инжект очень сложно. Например - тот же крафт. Никак не получается программно нажать на нужные пункты, что бы при крафте не вышибло клиент. В этом случае помогла бы эмуляция нажатия мышки. Стандартные SendMessage, PostMessage не проходят в свернутое окно. Точнее ПВ на них не реагирует. mouse_event работает только с экраном, там нет привязки к окну и как результат, так же в свернутом окне работать не будет. Может знает кто как средствами ПВ щелкнуть мышкой по заданым координатам?
________________
backup - акт проявления трусости
|
|
|
16.11.2014, 11:00
|
#2
|
|
|
|
Старший сержант
|
Регистрация: 20.10.2010
Сообщений: 170
Популярность: 684
Сказал(а) спасибо: 146
Поблагодарили 74 раз(а) в 54 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
________________
Вихри говорят "Х-ш-ш-ш"
[6 лет здесь]
|
|
|
16.11.2014, 18:47
|
#3
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
Unfreeze + PostMessage всегда работали.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
17.11.2014, 03:42
|
#4
|
|
|
|
Рыцарь-капитан
|
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
если именно для PW, то вроде работа с GUI всегда заканчивалась хорошо, все нажатия и тд
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
|
|
|
17.11.2014, 06:11
|
#5
|
|
|
|
Сержант
|
Регистрация: 16.02.2012
Сообщений: 105
Популярность: 651
Сказал(а) спасибо: 19
Поблагодарили 39 раз(а) в 31 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
хм... координаты же в PostMessage задаются относительно окна? 0, 0 - это левый верхний угол окна?
PostMessage(hWnd, WM_LBUTTONUP, 0, MAKELPARAM(Point.x, Point.y));
PostMessage(hWnd, WM_LBUTTONDOWN, 0, MAKELPARAM(Point.x, Point.y));
Добавлено через 8 минут
хм... действительно работает, но не со всем, например на сундук не нажать. Это потому что сундук является контролом и нужен его handle? у ПВшних элементов тоже есть свои handle которые ловят PostMessage?
________________
backup - акт проявления трусости
Последний раз редактировалось pw.assistant; 17.11.2014 в 06:20.
Причина: Добавлено сообщение
|
|
|
17.11.2014, 10:07
|
#6
|
|
|
|
Рыцарь-лейтенант
|
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
Нет, пвшные элементы - это картинки, и все нажатия обрабатываются собственным движком
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
|
|
|
17.11.2014, 15:45
|
#7
|
|
|
|
Сержант
|
Регистрация: 16.02.2012
Сообщений: 105
Популярность: 651
Сказал(а) спасибо: 19
Поблагодарили 39 раз(а) в 31 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
Вот. Как нажать на них мышкой? Должен же быть инжект или что-то подобное?
________________
backup - акт проявления трусости
|
|
|
17.11.2014, 15:54
|
#8
|
|
|
|
Пехотинец
|
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
Заправляем штаны и переходим в таком случае на UOPilot, он прекрасно кликает.
|
|
|
17.11.2014, 23:22
|
#9
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
18.11.2014, 05:52
|
#10
|
|
|
|
Сержант
|
Регистрация: 16.02.2012
Сообщений: 105
Популярность: 651
Сказал(а) спасибо: 19
Поблагодарили 39 раз(а) в 31 сообщениях
|
Re: Клик мышью в свернутом окне ПВ
Да, действительно было дело в смещении на заголовок и размер бордюров. Я просто не попадал по координатам. PostMessage работает. Спасибо за помощь! Сам бы еще долго репу чесал - думал бы что не работает.
Добавлено через 50 минут
Может кому пригодится
Получение положения и размера рабочей области открытого окна ПВ
Код:
function GetWorkRect(hWin: HWND): TRect;
var
wr, cr: TRect;
bw: integer;
begin
GetWindowRect(hWin, wr);
GetClientRect(hWindow, cr);
bw := (wr.Width - cr.Width) div 2;
Result := Rect(wr.Left + bw, wr.Bottom - bw - cr.Height, wr.Right - bw, wr.Bottom - bw);
end;
получение координаты относительно открытого окна ПВ
Код:
function WinMousePos(hWin: HWND): TPoint;
var
pt: TPoint;
r: TRect;
begin
getcursorpos(pt);
r := GetWorkRect(hWin);
Result.X := (pt.X - R.Left);
Result.Y := (pt.Y - R.Top);
end;
эмуляция нажатия на левую кнопку мышки
Код:
procedure DoMouseDown(hWin: HWND; hProc: THandle; MousePos: TPoint);
begin
unfreeze(hProc);
PostMessage(hWin, WM_LBUTTONDOWN, 0, MAKELPARAM(MousePos.x, MousePos.y));
PostMessage(hWin, WM_LBUTTONUP, 0, MAKELPARAM(MousePos.x, MousePos.y));
end;
размораживание окна
Код:
procedure unfreeze(hProc: THandle);
const
unfreeze_addr = $C9EC00; // для руоф
var
BytesCountOfWrite: NativeUInt;
unfreeze_flag: Byte;
begin
unfreeze_flag := 1;
WriteProcessMemory(hProc, ptr(unfreeze_addr), @unfreeze_flag, 1, BytesCountOfWrite); // unfreeze
end;
________________
backup - акт проявления трусости
Последний раз редактировалось pw.assistant; 18.11.2014 в 09:02.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 15:16.
|
|