Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
1

Работа с чужими окнами, а точнее добавление текста.

07.07.2011, 16:53. Показов 7195. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят помогите пожалуста, я хочу добавить текст в "Edit" чужой программы. Имя программы (Garena).
Но "WM_SETTEXT" не работает, я также пробовал "SetWindowText" но без результатно.
Я просто очень много (спам ботов) видел для гарены.
Хочу свой написать, но не получаеться не как добавить текст.
Если кто знает иные методы добавление то пожалуйста пишите в этой теме.
И кстати еше я видел что есть команды "WM_COPY" и "WM_PASTE".
Если с помощью них можно вставлять текст то подскажите как это сделать.
Также поля в которые я хочу добавить текст имеют свойство (ReadOnly).
Так как с WInAPI я стал (дружить) недавно желательно ко всему приводить примеры.
Всем заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2011, 16:53
Ответы с готовыми решениями:

Работа с чужими окнами
1 вопрос: есть окно(скрин) как скрыть всек,кроме бара? (понято что находи окно,получаем доступ к...

Работа с чужими окнами
Вообщем при нажатии кнопки окно должно встать поверх всех остальных окон, Делаю с блокнотом все...

Работа с чужими окнами
Господа допустим мы имеем какое то чужое окно,как я могу сделать его дочерним своего окна,что бы...

Взаимодействие с чужими окнами
Добрый день/ночь уважаемы программисты! Пытаюсь по взаимодействовать с открытой папкой но не как не...

30
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 16:57 2
Цитата Сообщение от Дмитрий3241 Посмотреть сообщение
Имя программы (Garena)
)) зачем ты пишешь имя программы?

ищешь handle окна функция FindWindow(), потом ищешь handle эдита функция FindWindowEx()
потом посылаешь сообщение WM_SETTEXT и все.
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 17:07  [ТС] 3
Потом посылаешь сообщение WM_SETTEXT и все.
Но "WM_SETTEXT" не работает, я также пробовал "SetWindowText" но без результатно.
я же писал что SETTEXT не работает...
зачем ты пишешь имя программы?
А имя программы я пишу для того, что бы "вдруг ктонибудь уже писал бот для гарены" ну или для того, что бы скачать и попробывать...
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 17:11 4
когда я писал ответ про WM_SETTEXT ничего не было, может ты потом добавил

Добавлено через 56 секунд
а хендл эдита верно находишь?
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 17:13  [ТС] 5
Цитата Сообщение от anonimus Посмотреть сообщение
а хендл эдита верно находишь?
Да с хендолом все точно верно.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 17:18 6
ну без программы ничем помочь не могу.
ты про какой эдит говоришь, в который нужно ввести пароль? или другой какой-то?
Могу скачать ее установить попробовать, если речь идет о полях для авторизации, если какие-то другие, то давай логин и пароль какой-нить что бы можно было залогинеться
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 17:19  [ТС] 7
anonimus, если можеш то пожалуста скачай гарену и попробуй просто очень надо.
Вот сылка на гарену (http://sng.garena.com/~client/).
Да вот когда при авторизации надо вести пароль и логин, вот тут я пытаюсь свой текст вставить, но неполучается.
"Имеют свойство (ReadOnly)"
К этому не относится.
Вот если что логин и пароль:
Логин: 2~MaN
Пароль: 523844
Попробуй с полями авторизации, после авторизации там слева будут команты, при заходе в комнату есть чат попробуй туда тоже добавить.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 17:58 8
покажи ка свой код, у меня с первого раза получилось
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 18:00  [ТС] 9
Цитата Сообщение от anonimus Посмотреть сообщение
покажи ка свой код, у меня с первого раза получилось
Ого, сейчас кину.
Вот держи то что нужно.

function SetText_(hWnd: HWND; lpString: PChar): LRESULT;stdcall;
var
tmr:LRESULT;
begin
tmr:=SendMessage(hWnd, WM_SETREDRAW, WPARAM(0),lparam(lpString));
result:=tmr;
end;

procedure TTest.ClearBTNClick(Sender: TObject);
begin
//Очищаем поля Логин.
SetText_(FindWindowEx(FindWindowEx(FindWindow('SkinDialog','Garena'),0,'ComboBox ',nil),0,'Edit',nil),Pchar(''));
//Очищаем поля Пароль.
SetText_(FindWindowEx(FindWindow('SkinDialog','Garena'),0,'Edit',nil),Pchar('')) ;
end;

procedure TTest.PasteBTNClick(Sender: TObject);
Var
Login , Password : String;
Desck : Integer;
Text : PChar;
begin
//Записываем в переменные Логин и Пароль для вставки в Гарену.
Login:=LoginText.Text;
Password:=PasswordText.Text;

//Вставляем Логин в Гарену.
Desck:=FindWindowEx(FindWindowEx(FindWindow('SkinDialog','Garena'),0,'ComboBox', nil),0,'Edit',nil);
Text:=PChar(Login);
SetText_(Desck,Text);

//Вставляем Пароль в Гарену.
Desck:=FindWindowEx(FindWindow('SkinDialog','Garena'),0,'Edit',nil);
Text:=PChar(Password);
SetText_(Desck,Text);

end;

У меня везде получаеться а именно в гарене нет .
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 18:09 10
а что ж ты обманываешь, не вижу у тебя в коде где ты посылаешь WM_SETTEXT
у тебя сообщение WM_SETREDRAW

Добавлено через 2 минуты
Delphi
1
2
3
4
5
str:string;
.............
str:='text';
.............
SendMessage(нужный хендл,WM_SETTEXT,0,Lparam(@str[1]));
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 18:15  [ТС] 11
Это я уже экспереминтировал от без исходности...
Блин на работает слухай а это может связанно с WIndow 7 ?
Кинь пожалуста свой код.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 18:29 12
Цитата Сообщение от Дмитрий3241 Посмотреть сообщение
Кинь пожалуста свой код.
он на рабочем компе остался, позже скину.

а ты в label пробовал выводить значение переменной Desck и сравнивать его например с показаниями spy++
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 18:33  [ТС] 13
Цитата Сообщение от anonimus Посмотреть сообщение
а ты в label пробовал выводить значение переменной Desck и сравнивать его например с показаниями spy++
Да пробовал тока не spay++ а моей прогой
Я писал сканер что бы легче Handle искать было.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 18:54 14
у меня код аналогичен твоему
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Button1Click(Sender: TObject);
var hw,pass,com,login:HWND; str:string;
begin
str:='text';
hw:=FindWindow('SkinDialog','Garena');
if hw<>0 then
  Label1.Caption:='hw='+inttostr(hw);
 
pass:=FindWindowEx(hw,0,'Edit',nil);
if pass<>0 then begin
  Label1.Caption:=Label1.Caption+#13#10+'pass='+inttostr(pass);
   SendMessage(pass,WM_SETTEXT,0,Lparam(@str[1]));
  end;//if
 
com:=FindWindowEx(hw,0,'ComboBox',nil);
if com<>0 then
   login:=FindWindowEx(com,0,'Edit',nil);
      if login<>0 then begin
         SendMessage(login,WM_SETTEXT,0,Lparam(@str[1]));
       Label1.Caption:=Label1.Caption+#13#10+'login='+inttostr(login);
      end;
 
end;
1
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 18:59  [ТС] 15
Цитата Сообщение от anonimus Посмотреть сообщение
у меня код аналогичен твоему
Вот скачай там исходник моей проги и сканера которым я ищу.
Попробуй мою прогу у себя закомпилировать и изменить если получиться отпишись.
Я пока в магаз за мылом и веревкой.
Вот сылка http://files.mail.ru/XCJNKF
За помощь плюсик уже обеспечен

Да я шас твой код компильнул не работает x.O
Может все таки дело в:
1. Windows 7.
2. В брандмауре.
3. В Delphi.
А да я использую Embarcadero RAD Studio XE
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 19:06 16
ну это мне гарену нужно на домашний комп скачивать ставить, а так неохота ((

P.S.
а у тебя на 7 уак включен?
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 19:08  [ТС] 17
Цитата Сообщение от anonimus Посмотреть сообщение
а у тебя на 7 уак включен?
уак это брандмауер?
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.07.2011, 19:10 18
нет это контроль учетных записей uac
1
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
07.07.2011, 20:12  [ТС] 19
Да включен.

Добавлено через 1 минуту
Хотя нет тракбар на нем стоит в самом низу...

Добавлено через 31 секунду
Кстати подскажи как его совсем убрать если можно.

Добавлено через 59 минут
Шас у другана был, проверял прогу, у него тоже все работает нормально.
Спасибо за помощь, плюсик я уже кинул.
Если что буду еше писать.
0
103 / 55 / 21
Регистрация: 20.12.2009
Сообщений: 1,197
Записей в блоге: 2
07.06.2013, 05:03 20
А как работать например с окошком Касперского? Сейчас вот запустил программу которая отображает класс и Хэндл окна что под мышкой, навел на его Эдиты, но никаких эдитов найти невозможно, все окно один сплошной - QWidget

Он щас запущен(Kaspersky), и эта зараза гавкает когда написать QWidget , в любом браузере
0
07.06.2013, 05:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2013, 05:03
Помогаю со студенческими работами здесь

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

Управление двумя чужими окнами.
Проблема вот в чем. Запускаются много окон с одинаковым handle(больше 2х). Мне же надо использовать...

Как сделать, чтоб моя программы стояла рядышком с другими (чужими) окнами, как на рисунке
Есть форма. Она простая. На нём указала поверх всех окон StayOnTop. Но мне надо, чтоб моя форма и...

Работа с чужими компонентами
Здравствуйте, Вообщем я пытаюсь в чужом приложении выполнять разные действия, копировать и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru