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

Поиск:

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


Новичок



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

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



Хм нет, нужно именно в свернутое окно))

Сейчас пробую обуздать WM_SETCURSOR :

Код

Private Const WM_SETCURSOR As Integer = &H20

PostMessage(g, WM_SETCURSOR, 0, MakeDWord(CShort(Text2.Text), CShort(Text3.Text)))


Пока что не очень ,но я думаю должно получится. Если сможешь раньше- отпиши)
PM MAIL   Вверх
I_Am_Rock
Дата 18.2.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хорошо....)
PM MAIL WWW   Вверх
LawYard
Дата 18.2.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возникла проблема с  GetCursorPos. Не получается описать функцию О_О

Код

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Sub Command1_Click()
Dim p As POINTAPI
GetCursorPos p
MsgBox p.x, , p.y
End Sub


Этот код в свое время кажется тебе дали. Но у меня бейсик ругается на Type. Говорит мол сейчас так не прописываются переменные, нужна другая структура.  
PM MAIL   Вверх
I_Am_Rock
Дата 18.2.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хорошо. Сейчас посмотрю - в чем проблема...

Послушай!
А почему бы не развернуть окно на время "нажатия".
Ты даже не почувствуешь (визуально), что окно разворачивалось...
Вот примерный код

Код

Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWMINIMIZED = 2
Private Const HWND_TOPMOST = -1

flags = SWP_NOSIZE Or SWP_DRAWFRAME

ShowWindow g, SW_SHOWMAXIMIZED 'Делаем во весь экран. (Можно просто развернуть, но так, мне кажется, лучше)
SetForegroundWindow(g)
SetWindowPos(g, HWND_TOPMOST, 0, 0, 1, 1, flags) 'Перемещаем в левый верхний угол
'Здесь перемещаем курсор и производим нажатие...
ShowWindow g, SW_SHOWMINIMIZED 'Сворачиваем окно
'Здесь можно "убрать" эффект HWND_TOPMOST, но это уже необязательно...


З.Ы. Я, кстати, не очень уверен, что перемещение курсора поможет с нажатием - ведь, при самом нажатии (через PostMessage) указываются координаты. Зачем же еще... Да и в моем примере (там где "красные кружки") это ведь не требовалось...

Это сообщение отредактировал(а) I_Am_Rock - 18.2.2008, 22:21
PM MAIL WWW   Вверх
LawYard
Дата 18.2.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Просто задумка в том, чтобы сперва изменить положение курсора, затем считать новые координаты и задать их через Постмесседж. Или может знаешькак клик сделать просто как ивент? Ну послать клик в окно без координат, просто по той точке где сейчас курсор? 
ЗЫ: чуток позже проверю твой вариант. Спасибо. 
ЗЫЫ: насчет что не поможет перемещение - на скриптовых языках у меня клик удавался хорошо если предварительно переместить, а не сразу клик по х,у.

Это сообщение отредактировал(а) LawYard - 18.2.2008, 22:23
PM MAIL   Вверх
I_Am_Rock
Дата 18.2.2008, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я сейчас проверил твой код (где GetCursorPos) - у меня все нормально сработало... У меня шестая версия Бейсика... Может у тебе другая и поэтому... Если так, то тебе следует зайти в Глав. меню (через пуск) и в ветке, где устан. Бейсик и найти API Text Viewer... И там посмотреть, как нужно делать именно в твоей версии...
PM MAIL WWW   Вверх
I_Am_Rock
Дата 18.2.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А зачем тебе нужно посылать именно в свернутое окно?

Если лишь для того, чтобы оно не было видно на экране, то можно сделать окно прозрачным...
Не на 100% так как оно в этом случае станет "дырявым" и на нем нельзя будет "кликать",
а на процентов 90-95, чтобы его было почти не видно, но все работало как обычно...

Посмотреть, как работает прозрачность ты сможешь в той моей проге ("Управление объектами")

З.Ы. У меня, кстати, днюха сегодня...)

Добавлено через 3 минуты и 1 секунду
Не 18 - 19... ) У меня др. часовой пояс...
PM MAIL WWW   Вверх
LawYard
Дата 18.2.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ооо, ну тогда поздравляю! Побольше бы таких отзывчивых людей)

ЗЫ: насчет прозрачности  - оно не подходит, приложение тупо виснет))

Это сообщение отредактировал(а) LawYard - 19.2.2008, 00:01
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Жаль, что не могу больше ничего посоветовать...(
Ну, если будут у тебя какие-то другие вопросы - буду также искать решение проблем...)
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня стоит 2008ой бейсик, поставил вот щас свой старый 6-ой. Буду тестить с перемещением через POINTAPI.  
  Вопрос: а у окна на заднем фоне тот же статус что и у свернутого?
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(LawYard @ 19.2.2008,  10:39)
Вопрос: а у окна на заднем фоне тот же статус что и у свернутого?

В смысле?
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


Опытный
**


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

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



Тогда да - состояние одно - если я, конечно, правильно понял...
PM MAIL WWW   Вверх
LawYard
Дата 19.2.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я что-то в тупике... кстати та программка что ты дал с кликами + прогарммка для проверки кликов - она работает походу только на эту програмку для кликов. Я взял стороннюю программу произвольную и там нашел координаты кнопки одной в окне этой программы, задал через твою прогу координаты и название окна, а оно не кликнуло. Ты не проверял ее на других приложениях? Может быть оно не кликает в мое приложение не тк приложение такое, а тк написано что-то не так?
PM MAIL   Вверх
I_Am_Rock
Дата 19.2.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да нет - и с другими прогами тоже работает.
Например, запусти Сапер, а в моей проге укажи:
заголовок - Сапер
X - 100
Y - 100
Нажатие происходит (открывается "квадратик").
Если в той проге, в которую ты хочешь слать нажатия, нет дочерних объектов (как в Сапере), то нажатия должны по идее работать. Насколько я помню, ты говорил, что в той программе нет доч. объектов...
PM MAIL WWW   Вверх
Страницы: (9) Все « Первая ... 5 6 [7] 8 9 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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