|
отправка нажатия клавиш в свёрнутое окно - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
15.05.2012, 18:16
|
#1
|
|
|
|
Пехотинец
|
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
|
отправка нажатия клавиш в свёрнутое окно
здравствуйте,подскажите пожалуйста,как в отправить нажатие клавиши в свёрнутое окно??
вот написал такое:
v:=FindWindow(nil, PChar(Edit1.Text));
postMessage(v, wm_char, VK_TAB, 0);
но нажатие происходит,только когдда окно активно, а в свёрнутое ничего не послает..
|
|
|
15.05.2012, 18:25
|
#2
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
Meg(0), сначала окно разморозить надо.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
Пользователь сказал cпасибо:
|
|
15.05.2012, 21:37
|
#3
|
|
|
|
Пехотинец
|
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
а как его разморозить через делфи?
|
|
|
15.05.2012, 21:45
|
#4
|
|
|
|
Разведчик
|
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
Последний раз редактировалось zaparca; 15.05.2012 в 21:48.
|
|
|
Пользователь сказал cпасибо:
|
|
15.05.2012, 22:01
|
#5
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
16.05.2012, 00:14
|
#6
|
|
|
|
Главнокомандующий
|
Регистрация: 27.03.2009
Сообщений: 1,666
Популярность: 67466
Сказал(а) спасибо: 246
Поблагодарили 1,560 раз(а) в 691 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
|
|
|
16.05.2012, 00:42
|
#7
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
16.05.2012, 01:39
|
#8
|
|
|
|
Пехотинец
|
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
|
Цитата: |
|
|
|
|
|
|
|
|
|
найти Unfreeze адрес для ПВ это
или UnfreezeFlag
|
|
|
|
|
|
как это записать?
я записал,что:
Код:
unfreeze_flag: Byte;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
v:=FindWindow(nil, PChar(Edit1.Text));
unfreeze_flag := 1;
PostMessage(v, WM_KEYDOWN, VK_F1, 0);
но ничего не размораживается..
а если так,то не выходит..вообще ошибку пишет..(
Код:
procedure Tform1.unfreeze;
var
BytesCountOfWrite: DWORD;
begin
unfreeze_flag := 1;
WriteProcessMemory(hProcess, ptr(unfreeze_addr), @unfreeze_flag, 1, BytesCountOfWrite);
end;
Последний раз редактировалось Meg(0); 16.05.2012 в 01:42.
|
|
|
16.05.2012, 06:42
|
#9
|
|
|
|
Пехотинец
|
Регистрация: 20.12.2010
Сообщений: 58
Популярность: 50
Сказал(а) спасибо: 22
Поблагодарили 36 раз(а) в 15 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
|
|
|
Пользователь сказал cпасибо:
|
|
16.05.2012, 09:28
|
#10
|
|
|
|
Главнокомандующий
|
Регистрация: 27.03.2009
Сообщений: 1,666
Популярность: 67466
Сказал(а) спасибо: 246
Поблагодарили 1,560 раз(а) в 691 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
|
|
|
16.05.2012, 09:49
|
#11
|
|
|
|
Главнокомандующий
|
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
Nitrogen, проще кнопку послать, чем инжект делать
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
|
|
|
16.05.2012, 15:28
|
#12
|
|
|
|
Пехотинец
|
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
Zo_Om4eG, во...спасибо, очень помогло))
Добавлено через 8 часов 31 минуту
ничё не пойму... запустил,всё работает как надо,выключил,снова запустил,не работает... как и раньше если окно активно,то нажимает кнопочку,видимо не размораживается?
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
v:HWnd;
unfreeze_flag: Byte;
unfreeze_addr: dword;
ProcessId, hProcess: Integer;
BC : dword;
begin
v:=FindWindow(nil, PChar(Edit1.Text));
if v <> 0 then
begin
v:=FindWindow(nil, PChar(Edit1.Text));
unfreeze_flag:=1;
GetWindowThreadProcessId(v,@ProcessId);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
WriteProcessMemory(hProcess, ptr(unfreeze_addr), @unfreeze_flag, 1, BC);
unfreeze_flag:=1;
PostMessage(v,WM_KEYDOWN,VK_F1,0);
Последний раз редактировалось Meg(0); 17.05.2012 в 00:17.
Причина: Добавлено сообщение
|
|
|
17.05.2012, 04:26
|
#13
|
|
|
|
Пехотинец
|
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
|
|
|
Пользователь сказал cпасибо:
|
|
17.05.2012, 15:48
|
#14
|
|
|
|
Пехотинец
|
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
|
Цитата: |
|
|
|
|
|
|
|
|
|
Когда окно не в фокусе, анимация в нём идёт? Если нет то не разморозилось, если даже если фокус на другом окне, но анимация в окне ПВ идёт, то разморозилось.
|
|
|
|
|
|
нет анимации,значит не размораживается(
попробуйте плиз кто-нить этот код..(
есть адрес unfreez flaga (00A57F3C) как его можно использовать?
unfreeze_addr := ReadAddr ('Base', 'unfreeze_addr', $00A57F3C));
поидее так,но почему показывается ошибка в ReadAddr ?
Последний раз редактировалось Meg(0); 17.05.2012 в 16:24.
|
|
|
17.05.2012, 18:56
|
#15
|
|
|
|
Пехотинец
|
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Re: отправка нажатия клавиш в свёрнутое окно
ReadAddr чситывает значения (read=чтение) а не записывает в память.
|
Цитата: |
|
|
|
|
|
|
|
|
|
unfreeze_addr := ReadAddr ('Base', 'unfreeze_addr', $00A57F3C));
|
|
|
|
|
|
почему тут в параметрах строки "Base" и "Unfreeze_adr"? почему 2 закрывающие скобки?
Итак, открываем OllyDbg. Подключаемся к ПВ. Жмём F9, чтобы продолжить выполнение клиента. Жмём ctrl+g, вводим адрес поиска, тот что выделен
Unfreeze= 00420204 (84 C0 > B0 01) /B0 00 - заморожен/ или 00420206 (88 75 > C6 01)
Видим опкод и соответствующие команды:
Теперь щёлкнем правой кнопкой по данной строчке. Выьерем Edit->Bynary edit. В нижнем поле вводим B001.
Получаем:
Развернём окно ПВ и перейдём на другое окошко. Картинка в ПВ двигается? да, разморозили вручную. Теперь по этому адресу нужно записать программно эти самые B0 и 01. Есть у вас функция WriteAddr? Записываем в переменную типа DWORD значение 01B0 (hex) или 432(dec) и пишем(Write) из неё двухбайтовое значение по тому адресу что указан выше. Тем самым мы меняем код клиента так, чтобы после проверки на неактивность окна у нас не происходила его заморозка(посути проверку мы убираем и пишем однозначное 01-разморожен. Если записать 00, будет заморожено всегда). Или записать по адресу 00420204 значение B0 и по следующему адресу 00420205 пишем 01, так же разморозится.
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
Последний раз редактировалось dwa83; 17.05.2012 в 19:04.
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:05.
|
|