Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нажать на кнопку в чужом окне 
:(
    Опции темы
denks
Дата 25.8.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Здравствуйте. Задача стоит следующая - из своей программы нажать на кнопку в чужом окне (зная название окна и название кнопки). Почитал некоторую литературу и составил вот такой код. Он не работает. Подскажите пожалуйста в чём причина. Скриншот окна куда нужно послать клавишу http://slil.ru/23056056

Код

.386
.model flat,stdcall
option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\user32.lib
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.data
zwindow db "[329-364-499] - Messaging Window",0
class db "TButton",0
name1    db "Send",0

.code
start :
invoke FindWindow,0,addr zwindow
invoke FindWindowEx,eax,0,addr class,addr name1
invoke PostMessage,eax,WM_LBUTTONDOWN,VK_RETURN,0
invoke PostMessage,eax,WM_LBUTTONUP,VK_RETURN,0
invoke ExitProcess,0
end start

PM MAIL   Вверх
BUGOR
Дата 26.8.2006, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 12.3.2006

Репутация: нет
Всего: 16



Код

invoke FindWindow,0,addr zwindow
invoke FindWindowEx,eax,0,addr class,addr name1
invoke SendMessage, eax, BM_CLICK, 0, 0


???





--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
denks
Дата 26.8.2006, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Не работает. В чём может быть причина ?
PM MAIL   Вверх
BUGOR
Дата 26.8.2006, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 12.3.2006

Репутация: нет
Всего: 16



В FindWindowEx. Кнопка находится "в другом" контроле - TPanel и в FindWIndowEx надо передавать первый параметром не хэндл окна, а хэндл TPanel в котором кнопка "Отправить". Тогда всё работает. Проблема в одном - как получить хэндл нужной TPanel, их в окне несколько. Остаётся только перебирать все элементы окна(EnumChildWindow) и искать TPanel в которой кнопка "Отправить"

А вот так всё работет:

Код

invoke FindWindowEx,00030AEAh,0,$CT0("TBitBtn"),$CT0("Отправить")
;00030AEAh - передаю в функцию хэндл TPanel в которой наша кнопка. Ессно при каждом сеансе он будет разным, вот твоя задача его найти программным путём и тогда всё заработает.
invoke SendMessage, eax, BM_CLICK, 0, 0



--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
denks
Дата 26.8.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Для меня это будет сложновато, т.к. я начинающий в асме. Но у меня получился другой простенький примерчик на данную тему. Кому интересно, можете посмотреть http://slil.ru/23058275
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.