Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];

Вниз

Послать нажатие книпки неактивному окну   Найти похожие ветки 

 
TyoshA   (2009-09-09 02:13) [0]

РЕбят перечитал кучу всего...Непойму реально ли послать нажатие кнопки другому окну?Например окно работает в свёрнутом виде,даже тот же скайп...МНе нужно послать ему какуюто кнопку,ну например  "1" или "к"...Хендл окна знаю...могу даже если нужно прикрепить к нему Dll...что я только не делал...Даже ставил хук на окно чтоб послать ему сообщение...ничего!Только когда его активизирую тогда только приходит в него то тчо я хочу...а мне надо печатать в окне не разворачивая его!Помогите кто чем может!Непереживайте в гугле яндексе и т.д. уже был....


 
Германн ©   (2009-09-09 02:22) [1]


> Послать нажатие книпки неактивному окну

Неактивное окно не принимает "нажатие книпки". Да и "нажатие кнопки" тоже.


 
TyoshA   (2009-09-09 02:34) [2]

ой неправильно написал=)
Хорошо а если инжектить dll и сделать хук на обработку сообщений окну и на этом обработчике зделать строку типа "нажать кнопку"...и посылать этому окну код этой кнопки....как это организовать и будит ли работать?Я знаю люди писали проги для нажатий клавиш в неактивных окнах!


 
Германн ©   (2009-09-09 02:40) [3]


> Хорошо а если инжектить dll и сделать хук на обработку сообщений
> окну и на этом обработчике зделать строку типа "нажать кнопку".
> ..и посылать этому окну код этой кнопки....как это организовать
> и будит ли работать?Я знаю люди писали проги для нажатий
> клавиш в неактивных окнах!
>

Всё будет нормально работать, если "правильно" "напишешь"!
:)


 
TyoshA   (2009-09-09 20:31) [4]

Хорошо.Какой Хук использовать для того чтоб он реагировал на посылание этому окну моего сообщения пусть даже через sendmessage(postmessage)?


 
Германн ©   (2009-09-10 01:50) [5]


> TyoshA   (09.09.09 02:13)
>
> РЕбят перечитал кучу всего...

Мало прочитал. Читай ещё.


 
KilkennyCat ©   (2009-09-10 02:47) [6]


> Хендл окна знаю

если ты его знаешь, то все, что тебе осталось, это SendMessage.

И вообще, вся разница между активным и неактивным окном сводится к > Хендл окна знаю
То есть, изучаешь, как посылать активному окну, и все.
Но если ты все-таки хэндл не знаешь, то подсказываю и тут: EnumChildWindow


 
TyoshA   (2009-09-10 03:00) [7]

Ребят пробовал всё=( Непойму!Ну вот дапустим w_h хендл например окна сообщений скайпа!Как должен выглядеть sendmessage при этом?(!)
Нада ли ставить хук через длл в скайп или можно просто узнать хендл и послать сендмесседжем команду нажатия клавишы в окно?ПОловина рунета гаварит можно половина нельзя....Пробывал и так и так!Получилось через хук но пишет олька кагда активирую окно!ТОесть паслал каманду ничего...тока переключился на это окно написало!Это мне неподходит...Как то ж делают люди на делфи ботов для МУ.....Посылают окну именно нажатие кнопки а не снифят пакеты и т.д. подскажите плз пункт (!)


 
KilkennyCat ©   (2009-09-10 03:19) [8]

гм... я теряюсь. вот я, например, слабо представляю себе, что такое "хук через длл", т.е. твой уровень реально выше моего. но ты не знаешь иерархию окон, не знаешь, что кнопка тоже окно, в конце концов, я тебе даже подсказал необходимую функцию... какие проблемы с нахождением окна по заголовку, например, нахождения в нем чайлдов и посылка нужному кейдауна?... странно.


 
TyoshA   (2009-09-10 15:51) [9]

Хук-SetWindowsHookEx
Хук(Hook) это ловушка.Она ставится в системе для перехвата сообщений окну до его доставки этому окну.На этом принципе действуют клавиатурные шпионы.(но это нам не важно)
ПОпробуйте ктото создать txt файл...открыть его блокнотом....свернуть...и попробовать написать програмулину чтоб при нажатии button1 блокноту посылалась команда нажатии кнопки...Через FindWindowsEx это легко,лиш найти елемент окна типа edit или memo и вписать в него!Но в том то и проблема что окно в каторое я хочу послать нажатие кнопки неимеет никаких таких элементов!КТо играл в онлайн игры клиентские смогут понять!Мне просто нада эмулировать нажатие кнопки в чужое(не мною написанное,может и не на делфи или С++ окно).Люди такое делали до меня но исходники давать отказываются(как ни странно :) ).
Сразу замечу узнать хендл окна легко для того приложения каторое мне нада но тренируемся хотябы на блокноте.


 
KilkennyCat ©   (2009-09-10 19:47) [10]

безнадежно.


 
V   (2009-09-10 21:37) [11]

Блин...
FindWindow(), FindWindowEx()... получили хендл
SendMessage(Хендл, WM_KEYDOWN, код клавиши, 0)
либо кликнуть по кнопке, тогда заместо WM_KEYDOWN(WM_CHAR) делаем BM_CLICK

Либо если ткнуть мышкой в определенную к-ту контрола
SendMessage(Хендл, WM_LBUTTONDOWN, 0, MakeLParam(x,y)) (и потом лбуттонап)


 
TyoshA   (2009-09-11 04:59) [12]

=(...Пробывал....Даже в блокнот неотсылает...Ставил на Timer...разварачую окно клацается....сварачиваю неклацается...блин мож у мну чот в винде нахимичено?!Почему у меня только с активными окнами можно через делфи работать?!


 
sniknik ©   (2009-09-11 10:53) [13]

> Почему у меня только с активными окнами можно через делфи работать?!
вопрос в другом, при чем здесь дельфи?
и еще, а каким образом юзер может нажимать кнопки в свернутом окне, и зачем винде обрабатывать невозможное?

ответь, о мастер хуков...

KilkennyCat ©   (10.09.09 19:47) [10]
> безнадежно.
+1


 
TyoshA   (2009-09-13 19:42) [14]


> вопрос в другом, при чем здесь дельфи?

Нужно написать прогу

> и еще, а каким образом юзер может нажимать кнопки в свернутом
> окне, и зачем винде обрабатывать невозможное?

эм ты наверно не читал все посты в этой теме о мастер ответов...представь себе ситуацию: У тебя есть делфи,ты содаёш форму,кладёш туда кнопку и едит,вводиш в эдит слово ПРИВЕТ или же просто букву О например нажимаеш на кнопку и это слово\буква посылается в блокнот(свёрнутый)...может быть столь разжованное обьяснение тебя приведёт к нужным мыслям?

> > безнадежно.
> +1

почемуто мне кажется что безнадёжно задавать вопросы вам...из всей темы даже 5летний ребёнок поймёт о чём я спрашиваю....Если вы не знаете как это зделать то зачем засорять тему ненужным мусором типа:
> безнадежно.


 
sniknik ©   (2009-09-13 21:17) [15]

> почемуто мне кажется что безнадёжно задавать вопросы вам...
может быть... т.к. я не воспринимаю себя службой поддержки анонимов.

> 5летний ребёнок поймёт о чём я спрашиваю...
так у него и спрашивай.

> Если вы не знаете как это зделать
сделать не проблема, тут многие знают как, но они не знают, что. что у них спрашивают... в чем именно проблема. а знать это очень хочется.
ну вот например что то я сделал, но то ли это? (это вообще не нажатие кнопок)
http://webfile.ru/3917456
не встретил проблем, хотя судя по всему знаю я поменьше твоего, т.к. dll в хендлы внедрять не умею... а для тебя это обычное дело. даже начал нас тут просвещать...

>то зачем засорять тему ненужным мусором типа:
>> безнадежно.
ну если безнадежно, то оно так и есть. и не зачем засорять ветку мусором о мусоре безнадежности...


 
TyoshA   (2009-09-13 22:32) [16]


> http://webfile.ru/3917456

Ну наканецта!!!!!!!то было поболее внушающе чем создавать конфликт на ровном месте ;) Всё ты правильно понял и зделал то что надо!Чуство восхищения переполняет моё сердце ибо я 2 дня немог это зделать(еси чесно перепробывал всё!(как оказалось не всё)) но теперь меня интерисует вопрос об исходнике :) Если хочиш поделюсь исходником про инжектинг ДЛЛ в чужой процесс...Узнал я про этот способ изза ярого интереса к кейлогерам...Когда написал свой родной который непалился не одним антивирем,каторый мне известен(при работе кейлогера),я был на небесах от щастья!Ну он не загружался в авторан но при работе не загружал формы и в поцессах был как svchost.exe....единственно как его можно было вычислить это то что он запускался не от system а от имени пользователя :) (знаю что таких мульон но я был горд)
P.S. Кстать написал но так и не пользовался=)


 
sniknik ©   (2009-09-13 22:48) [17]

> инжектинг ДЛЛ в чужой процесс...
процесс не интересно, это легко, мне бы в хендл... ->
> Хендл окна знаю...могу даже если нужно прикрепить к нему Dll...

> но теперь меня интерисует вопрос об исходнике :)
тогда начинай сначала, про невозможность нажатия кнопок в неактивном окне и главное ->
KilkennyCat ©   (10.09.09 02:47) [6]
>> Хендл окна знаю
> если ты его знаешь, то все, что тебе осталось, это SendMessage.  
> ....


 
Германн ©   (2009-09-14 01:30) [18]


> TyoshA   (13.09.09 22:32) [16]

Ты бы сменил стиль письма. Лучше бы стало именно тебе.


 
TyoshA   (2009-09-14 05:01) [19]

Ну вопервых что именно ты имел ввиду под "стиль письма"?Грамотность?Сорри с Украины у нас тут дибильное правительство с прыщавым во главе давит русский язык(голову бы поотрывал но это совсем другая тема)...Нас тут русскому правильному неабучают=\...Но се на нём говорят....Так что как слышу так и пишу=)
Если ты про то как я отреагировал на то что сказали что я безнадёжен так это глупо...прочитая любой из моих постов легко можно поять что я хотел и кагда мну понеслочеловек както и без обьяснений понял что нада и написал сразу...ПРосто обычно такой вопрос как у меня состоит из 2 постов:вопрос,ответ...Тема не про обсуждения грамотнописания либо доковыревания до каждого слова дабы к чемуто да придратся...

> процесс не интересно, это легко, мне бы в хендл...

о_О...в хендл?ну чисто теоретически с грубейшими смысловыми ошибками можно и к Хендлу но длл всёравно на поток цепляется(или на все потоки если ставиш значене потока 0)....Ну и не совсем ДЛЛ а Хук и если этот хук попадает в адрессное пространство потока то он может при неких манипуляциях выполнять команды изнутри....оч приятно для всяких игр иль защит к ним(GameGuard кстать ломался раньше таким же способом...)

> все, что тебе осталось, это SendMessage.

Эммм...Дизасемблировал...нашол SendMessageA...Я в ассемблере не силён(ну там могу сложить 2 регистра и т.д.)но понять что именно ты послал(интерисует функция SendMEssageA если канешно такавая вообще имеет место быть)и что нужно писать в параметрах ибо нашол сайт и там пишется что это какоето постсуфиксное выражение и оно возвращает вродь чтото...если несжно обьяснить?


 
TyoshA   (2009-09-14 05:29) [20]

Ай сорь за дабл постинг но я нашол в листинге функцию FindWindowsEx тоесть тыпросто нашол Edit и вписал в него то что надо.....=\ так то и у меня получилось.....а без этой функции както можно?тоесть не просто впсать в едит что надо а нажать кнопку на приложении?


 
KilkennyCat ©   (2009-09-14 06:19) [21]

мда... дело не в стиле, а в бессистемности знаний, совсем как я лет этак в 23...
TyoshA, ты хотел то, что сделал sniknik? Но зачем дизассемблировать-то? он ведь ясно дал понять, как...


 
Ruzzz   (2009-09-14 14:04) [22]

См. http://delphimaster.net/view/2-1252426330/


 
TyoshA   (2009-09-14 15:04) [23]

Спс Ruzzz!
KilKennyCat сорь мне 13...


 
KilkennyCat ©   (2009-09-14 23:37) [24]


> TyoshA (14.09.09 15:04) [23]

Тогда у тебя больше шансов :)


 
Германн ©   (2009-09-15 00:52) [25]


> KilkennyCat ©   (14.09.09 23:37) [24]
>
>
> > TyoshA (14.09.09 15:04) [23]
>
> Тогда у тебя больше шансов :)
>

Ага. Если обучение через и-нет (всегда писАл "И-нет", но в связи с новыми правилами русского языка, свои правила поменял) примет разумные рамки.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.007 c
15-1252096207
Юрий
2009-09-05 00:30
2009.11.01
С днем рождения ! 5 сентября 2009 суббота


2-1252953846
cyberspy85
2009-09-14 22:44
2009.11.01
не запускается скрипт


2-1252866636
wah
2009-09-13 22:30
2009.11.01
Как записать из RichEdit в бинарный файл и потом прочитать


15-1252083225
turbouser
2009-09-04 20:53
2009.11.01
Поиск по форуму


2-1252269484
indiegod
2009-09-07 00:38
2009.11.01
Уничтожение динамического TImage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский