![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Newbie1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Здравствуйте. Я хотел бы нажать кнопку в чужой программе, да, тема уже нираз поднималась, но я уже все перепробовал, кнопка не жмется..
Использую VS 2008 и встроенную в нее Spy++ утилиту. Вот скрин в спае кнопки, которую нужно нажать: ![]() А вот мой код ( при нажатии кнопки в своей программе, должна нажаться кнопка в чужой программе):
Однако этого не происходит. Извините, если вопрос глупый, заранее спасибо. |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а что это за странные преобразования (LPCWSTR)"GG_SWITCHVIEW" ?
замени их на _T() или _TEXT():
не проходит не SendMessage, а FindWindow/Ex -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Newbie1x |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Это я пытался преобразовать в тип, который треубет ф-ция.
Попробовал ваш пример, повылезали ошибки: error C3861: _T: идентификатор не найден С _TEXT тоже самое: _TEXT: идентификатор не найден Ведь так? Или я что-то не понял?
Не понял этой строчки. |
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
пропущено еще одно окно типа #32770 -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Newbie1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Тоесть древо надо постепенно раскрывать, тогда я не только 32770 пропустил а еще 1 похоже.. ну вроде попробовал, однако все равно не работает, наверное из-за (LPCWSTR), я не знаю как его верно заменить, тк _T и _TEXT у меня не работают.
Вот что вышло: (Это не работает).
Это сообщение отредактировал(а) Newbie1x - 14.9.2009, 21:57 |
|||
|
||||
| GremlinProg |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
извиняюсь, моя ошибка, :) не посмотрел на объявление функции:
а не пробовал, BM_CLICK ?
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||||
|
|||||||||
| Newbie1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Попробовал сейчас - тоже не сработало, да и наверное было бы странно,если бы сработало, тк я ловил сообщения при нажатии кнопки, приходили WM_LBUTTONDOWN и WM_LBUTTONUP в 1 параметре 1 и 0, во втором - координаты клика на кнопке.
Не понимаю, почему не работает:( |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
имхо добавь проверку на правильный указатель , ведь есть шанс что не находит окна вообще...
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Newbie1x |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Да, похоже окна вообще не находит.. На счет Send я почти на 100% уверен, что все верно. Щас попробовал создать на билдере приложение, на нем 1 кнопка, нажав на нее в Лабел выводится "Привет".
Сделал КОд:
И даже он не работает! Мне кажется причина в (LPCWSTR).. Но я не знаю как правильно окно искать, не было опыта, первый раз работаю с этим. Вот еще на вашем форуме нашел немного другой способ:
Но такой код у меня СИ отказывается принимать.. Грит чего суешь в HWND указатель :( Это сообщение отредактировал(а) Newbie1x - 14.9.2009, 22:31 |
||||
|
|||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
если это пройдет, значит проблема в поиске
001508fa - значение HWND кнопки из Spy'я #32770 - это ощий класс диалога, он не имеет родителя, т.е. его нужно искать через FindWindow, но если в системе открыто несколько диалогов, то будет выбран первый попавшийся, тогда можно сначала найти владельца диалога (в Spy он указан, открой свойства диалога) а саму кнопку можно найти по идентификатору (ID) кнопки (в Spy он тоже есть, открой свойства кнопки) через GetDlgItem
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| Newbie1x |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
На такой код СИ ругается.. Наверное все-таки правильно так??
Так не ругается, но и не работает.. :( Добавлено через 2 минуты и 26 секунд
А вот так уже работает!! Ну хоть что-то у меня работает, как я рад)) Это сообщение отредактировал(а) Newbie1x - 14.9.2009, 22:40 |
||||||
|
|||||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Newbie1x |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Тогда не работало так как я программу перезапустил и идентификатор сменился..
Как я выше написал, 0x260EE2 в таком случае нажимает на кнопку.. Теперь надо как-то организовать поиск "Правильно" Добавлено через 6 минут и 10 секунд Такой вопрос, что есть ButtonID на 3 строке вашего кода в поиске? Добавлено через 12 минут и 44 секунды Опять он ругается, что у меня в строке данные об окне лежат и приходится делать преобразование, после чего он опять ничерта не находит.. Как решить эту проблему,
Весь КОд:
|
||||
|
|||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Newbie1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Andrey44,
Спасибо большое, этот иклуд помог, _T заработало и кнопку нашло |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |