Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатие клавиши в определённое окно 
:(
    Опции темы
LawYard
Дата 19.2.2008, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хм... а попробуй запустиьт например дебаг этой проги, и выбрать там чтоб он кликал в окно бейсика по кнопке стоп например. Он не кликает у меня. По саперу норм кликает. А в окно бейсика и напрмиер пеинта не хочет.
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По кнопке бейсика он и не должен кликать! Для этого нужно сначала найти кнопку (ее хэндл). Сейчас покажу код...
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Смотри что я нашел:

The WM_MOUSEACTIVATE message is sent when the cursor is in an inactive window and the user presses a mouse button. The parent window receives this message only if the child window passes it to the DefWindowProc function.

WM_MOUSEACTIVATE = &H21
Public Enum 
WM_MOUSEACTIVATE As Integer
MA_ACTIVATE = 1
MA_ACTIVATEANDEAT = 2
MA_NOACTIVATE = 3
MA_NOACTIVATEANDEAT = 4
End Enum

Сейчас буду тестить.

Добавлено через 3 минуты и 54 секунды
Не вышло(

Добавлено через 7 минут и 48 секунд
А вот еще:

The return value specifies whether the window should be activated and whether the identifier of the mouse message should be discarded. It must be one of the following values. 

MA_ACTIVATE                           Activates the window, and does not discard the mouse message. 
MA_ACTIVATEANDEAT               Activates the window, and discards the mouse message. 
MA_NOACTIVATE                       Does not activate the window, and does not discard the mouse message. 
MA_NOACTIVATEANDEAT             Does not activate the window, but discards the mouse message. 

Я так понимаю нам надо
MA_NOACTIVATE    - "Не активизирует окно, и не отказывается от сообщения мыши."

А как задать параметр этот для WM_MOUSEACTIVATE ?

Добавлено через 11 минут и 55 секунд
Да, кстати я не очень понял как мне задать это 

Код

Public Enum 
WM_MOUSEACTIVATE As Integer
MA_ACTIVATE = 1
MA_ACTIVATEANDEAT = 2
MA_NOACTIVATE = 3
MA_NOACTIVATEANDEAT = 4
End Enum


Точнее ГДЕ. И не оченьпонял как дать моему WM_MOUSEACTIVATE параметр MA_NOACTIVATE?
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сейчас посмотрю....

Архив 1 - для кнопки бейсика
Архив 2 - для Пеинта (сначала выбери в Пеинте Карандаш, а лучше Кисть, чтобы заметно было)

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  1_2.rar 2,81 Kb
PM MAIL WWW   Вверх
I_Am_Rock
Дата 19.2.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наверное вот это...

Код

Public Enum 
WM_MOUSEACTIVATE As Integer
MA_ACTIVATE = 1
MA_ACTIVATEANDEAT = 2
MA_NOACTIVATE = 3
MA_NOACTIVATEANDEAT = 4
End Enum


лучше сделать Private (Как функции) и размещать вверху (ну, где объявл. АПИ-функции)

Код

Private Enum 
WM_MOUSEACTIVATE As Integer
MA_ACTIVATE = 1
MA_ACTIVATEANDEAT = 2
MA_NOACTIVATE = 3
MA_NOACTIVATEANDEAT = 4
End Enum

Это лишь мои предположения...

Добавлено через 1 минуту и 21 секунду
Архив опять зачем-то разместился...(

Это сообщение отредактировал(а) I_Am_Rock - 19.2.2008, 21:38

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  1_2.rar 2,81 Kb
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Насчет того что ты дал: я проверял именно ТУ прогармму ожидая от нее, что она будет кликать в пределах выбранного оукна по ЛЮБОЙ его части, будь то кнопка или текстовое поле и тп. То есть чтобы оно не зависело от дочерних объектов. Например, чтобы я задал только хендл окна - Пеинт, не задавая где конкретно я хочу клинуть ,только координаты, никаких дочерних объектов и полей. Тогда она не работает.

Добавлено через 1 минуту и 38 секунд
на 

Код

Private Enum 
WM_MOUSEACTIVATE As Integer
MA_ACTIVATE = 1
MA_ACTIVATEANDEAT = 2
MA_NOACTIVATE = 3
MA_NOACTIVATEANDEAT = 4
End Enum


Тоже ругается. Конкретно на  Private Enum . Выделяет это красным цветом.
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Тогда можно ораганизовать поиск перед нажатием через WindowFromPoint

Код

Private Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long


Она определяет хэндл объекта под курсором мышака - вне зависимости дочерн. объект или родительский.
Примечание: координаты X и Y вводятся относительно экрана, а не относительно окна, поэтому перед этим желательно загнать окно в левый верхний угол (как я говорил ранее - с помощью SetWindowPos)
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ммм, а что это даст? Я что-то не уловил мысли...

Добавлено через 27 секунд
ЗЫ: здесь больше в бейсике что никто не шарит???  Кто бы еще чтоль помог нам...
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



WindowFromPoint - то, что нужно, потому что позволяет сделать так, чтобы "кликать в пределах выбранного оукна по ЛЮБОЙ его части, будь то кнопка или текстовое поле и тп."
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как его юзать? У меня что-то бошка не варит... целый день перебирал различные функции\константы\ивенты.... голова забита.
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот код - "нажатия" лишь по координатам.

Тестил с кнопками Калькулятора и Пуском - работает. А вот с Пеинтем почему-то не хочет...

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  dddd.rar 1,67 Kb
PM MAIL WWW   Вверх
LawYard
Дата 20.2.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В моем приложении тож не нажимается. Видать та же фигня что и с пеинтом(( Приду с инста подумаю как еще можно организовать нажатие в окошко. Надо искать обходные пути значит(
PM MAIL   Вверх
XOXOJI
Дата 20.9.2008, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Блин, от незадача, пытаюсь послать в окно F5, но он его не передает, испробовал на блакноте, передает t  smile 
PM MAIL   Вверх
I_Am_Rock
Дата 20.9.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(XOXOJI @  20.9.2008,  18:38 Найти цитируемый пост)
Блин, от незадача, пытаюсь послать в окно F5, но он его не передает, испробовал на блакноте, передает t  

Может, вы перепутали код клавиши? 
PM MAIL WWW   Вверх
XOXOJI
Дата 20.9.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(I_Am_Rock @ 20.9.2008,  18:48)
Цитата(XOXOJI @  20.9.2008,  18:38 Найти цитируемый пост)
Блин, от незадача, пытаюсь послать в окно F5, но он его не передает, испробовал на блакноте, передает t  

Может, вы перепутали код клавиши?

неа, код точный F5- &H74

а посылает t
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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