|
Модераторы: Akina |
|
ProggerXandCo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 24.6.2010 Репутация: нет Всего: нет |
Помогите, пожалуйста, с синтаксисом функции SendMessage (VB 6.0). Если можно, дайте пример. Зараннее благодарен!
Это сообщение отредактировал(а) ProggerXandCo - 1.7.2010, 16:00 |
|||
|
||||
neic |
|
||||||||
Опытный Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
Вот смотри:
тут: hwnd - идентификатор окна (куда будешь посылать сообщение) WM_KEYDOWN - в данном случае указываем, что мы нажимаем виртуальную клавишу на клаве VK_DELETE - указываем, что нажимаем кнопку Delete 1L - пока без понятия, да думаю он и не важен, т.к. он дополнительный Добавлено @ 16:36 Чтобы найти hwnd можно сделать следующее:
или так:
Это сообщение отредактировал(а) neic - 1.7.2010, 16:36 |
||||||||
|
|||||||||
~FoX~ |
|
||||
НЕ рыжий!!! Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Так же важен как и нижний параметр... Например
ProggerXandCo http://vingrad.ru/VB-ART-003067 Это сообщение отредактировал(а) ~FoX~ - 1.7.2010, 17:04 |
||||
|
|||||
neic |
|
|||
Опытный Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
~FoX~
Я тут так попробовал попробовал. Но сам понял, что не разобрался =) Вот смотри как послать калькулятору цифру 1?
И ни не получается. Я так понимаю трабла в res& = GetWindow(rc&, GW_CHILD), но какая? |
|||
|
||||
ProggerXandCo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 24.6.2010 Репутация: нет Всего: нет |
А как тогда будет выражаться нажатие на кнопку чужой формы?Или выделение текстового поля?
|
|||
|
||||
~FoX~ |
|
|||
НЕ рыжий!!! Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Ну во первых кто такой "Калькулятор плюс"?
Честно не знаю что за потомок вернется по GetWindow, я бы использовал FindWindowsEx
Ну а дальше надо посмотреть что там едиту можно заслать |
|||
|
||||
I_Am_Rock |
|
|||
Опытный Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Нажатие SendMessage c WM_COMMAND и BN_CLICKED как wparam (в принципе просто 0) Выделение текста SendMessage c WM_SETFOCUS или функция SetFocus если я ничего не путаю ) |
|||
|
||||
ProggerXandCo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 24.6.2010 Репутация: нет Всего: нет |
Извините,пожалуйста,нельзя ли объяснить понятнее? с 1L - просит list separator и непонятно последнее сообщение I_Am_Rock - а. Помогите, пожалуйста с синтаксисом нажатия кнопки чужого контрола!(последнее сообщение I_Am_Rock) |
|||
|
||||
I_Am_Rock |
|
|||
Опытный Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
А вот сам I_Am_Rock и объяснит. Я правда сразу скажу - делать так, как я сказал не надо.)) Не то сообщение надо посылать. Перепутал я)
Вот вобщем пример как надо . Перед запуском программы нужно открыть Пуск - Выполнить. В текст поле нужно ввести calc (чтоб потом калькулятор запустился) Затем нужно запустить форму с кодом, который ниже. При загрузке она 1) Найдет родительское окно по заголовку, 2) Найдет дочернее окно по заголовку (вообще это кнопка, конечно, но для windows все такие объекты управления - это "окна") 3) Отошлет сообщение этому дочернему окну-кнопке о том, что ему пора нажиматься. Ясное дело - в итоге должен запустить Калькулятор.
Это сообщение отредактировал(а) I_Am_Rock - 3.7.2010, 00:33 |
|||
|
||||
ProggerXandCo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 24.6.2010 Репутация: нет Всего: нет |
А как можно просто обратить "внимание" программы на окно, чтобы пускать оператор SendKeys(для этого окна)?
Простая его постановка в конце примера I_Am_Rock - а ничем не помогла (Процедура - загрузка Form1). |
|||
|
||||
~FoX~ |
|
|||
НЕ рыжий!!! Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
FindWindow |
|||
|
||||
ProggerXandCo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 24.6.2010 Репутация: нет Всего: нет |
Не помогло, ~FoX~.Окно находит, но SendKeys не работают.
|
|||
|
||||
~FoX~ |
|
||||||
НЕ рыжий!!! Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Поглядев с помощью WinSight на калькулятор - понял, что в Edit нажимать кнопки бесполезно, ибо он выключен )))
Есть два варианта решения 1. нажимать кнопки в окне
2. Слать в едит непосредственно нужный текст WM_SENDTEXT, но тут геморойно потому что приходиться сначала получить текст, посчитать длинну прибавить к полученному число и увеличить длинну, не забывая про запятую.... Добавлено @ 16:45 Модуль
Кнопа
Это сообщение отредактировал(а) ~FoX~ - 8.7.2010, 16:45 |
||||||
|
|||||||
ProggerXandCo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 24.6.2010 Репутация: нет Всего: нет |
Извините, пожалуйста, но я имел в виду вначале включить обнаружение уже запущенного окна,
например, Блокнота, а потом управлять им с помощью SendKeys. Или это невозможно? |
|||
|
||||
~FoX~ |
|
|||
НЕ рыжий!!! Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Еще раз Забудь ты про SendKeys, не все контролы обрабатывают нажатие кнопок... Например:
Ты определись....Нажатие кнопки чего? Мыши, клавиатуры, программной, etc...? Нажатие кнопки WM_KEYDOWN/WM_KEYUP/WM_CHAR... Нажатие кнопы мыши WM_L/R/MBUTTONUP/DBLCLICK... Выделение WM_SETFOCUS и т.д. Нельзя управлять контролами внутри приложения с помощью клавиатуры.... Все действия не обязательно обрабатываются самим контролом, в большинстве случаев этим занимается окно предок объекта, именно окно Application или Form (не знаю как в ВБ)... |
|||
|
||||
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |