![]() |
|
Модераторы: Akina |
![]()
|
|
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Здравствуйте мне необходимо отослать нажатие клавиши Q в окно с заголовком Game
окно Game же может быть в как в свёрнутом так и развёрнутом режиме. Наткнулся на тему в этом форуме но вней в основном написано о отправки сообшений , мне нужно нажать кнопку в другом окне помогите пожалуйста с кодом. |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Сейчас сделаю. Через минут 5-10 ждите...
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Сделал!..
Если что-то непонятно или не сработает (хотя должно - я проверял), то спрашивайте! Если это Вам поможет, то, пожалуйста,(!) - попросите (прямо здесь, в теме) модератора повысить мне репутацию...
|
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Респект спасиба тебе дружбан!
Модер плюсани ему репутацию это Супер чел! Если нетрудна подскажи где взять коды других букв и символов. Это сообщение отредактировал(а) qweqwe - 3.2.2008, 23:11 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
И тебе плюсик
Добавлено @ 23:27 Я немнога апгрейднул код чтобы кагда етого окна небыло функция неработала:
Но меня интересует один вопросик как добиться того чтобы при свернутом окне на рабочем столе невыполнялась эта функция а то когда окно сворвчивается кнопка жмется в окно Game нормально но вот если на рабочем столе буднт расплоложен ярлык или папка начинающаяся на символ Q например qoute или qip то тогда папка или ярлык выделяются что мешает работе при свёрнутом окне. Это сообщение отредактировал(а) qweqwe - 3.2.2008, 23:34 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Сейчас посмотрю, что можно сделать...
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот код...
У меня ярлыки при этом почему-то не загружаются, так что проверить на практике не смог - решена ли проблема или нет... Но, в принципе, должно работать - ведь курсор перестает отображатся в момент "нажатия"...
|
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
и в условном блоке - выполняемый код? PS. Использование GoTo вообще считается "грязным" стилем. Ну кроме On Error Goto ессно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
У меня ярлыки и не выделяются даже...
Скажи, помог мой совет с "отключением" курсора?.. Если нет, то я еще кое-что попробую сделать... |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот ЭТОТ код, мне кажется, должен решить проблему...
|
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Тоже самое =(
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Странно... Как может ярлык выделяться, если рабочий стол фактически Enable=False во время нажатия...
Буду еще думать... |
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Курсор неимеет к этому отношения ярлык или папка с именем начинающимся на Q выделяется как будто один раз щелкнуть на ярлык или папку а со второго срабатывания скрипта запускается.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Это, да - ошибку свою я понял...
Но ведь в последнем коде был уже не курсор - я отключал сам рабочий стол... Я понял в чем проблема - прога посылает q рабочему столу. Но не могу ничего с этим поделать! Уж чего только не пробовал!.. Есть еще один способ - но он уж слишком кардинальный... сделать так, чтобы на время "нажатия" ярлыки, начинающиеся на q переименовывались (например, Question -> WQuestion) - а потом обратно... Но не знаю - смогу ли я... |
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
осьаточно хобы сделать так чтобы перед началом точка добавлялась =)
Сможешь -) |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Разницы нет - точка или символ... Главное до ярлыков добраться!
З.Ы. Если бы неделю назад мне кто-нибудь сказал, что я буду переименовывать ярлыки, чтобы послать символ из одной проги в другую - не поверил бы... |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Решение найдено!
Слава Богу, обошлось без переименовывания ярлыков (возможно, это и не помогло бы)... Главное, об этом (SetForegroundWindow) уже писали на 1 странице темы... Напиши, как проверишь. Мне, интересно - у тебя будет работать или нет. По идее, должно... У меня ведь работает - больше ярлыки не выделяются...
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
I_Am_Rock, qweqwe, написали бы темку для FAQ'а чтоли, раз столько работы проделано...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Да с ярлыками всё нормал но я заметил что если открыть пуск в то он сворачивается , ф также нажатие неотрпавляется в свёрнутое окно.
Ты молодца |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
С пуском понял, а вот со свернутым окном не очень - у меня посылается даже если оба окна (и с этим кодом и окно-цель) свернуты...
Но я, конечно, буду еще думать... Кстити, в моем-то коде символ посылается через нажатие Command1... Чтобы проверить со свернутыми окнами я вставляю этот код в Timer1... А ты как делаешь?.. Еще вот что - если ты скажешь, зачем тебе посылать символ (и вообще зачем такая программа), я возможно найду какой-нибудь другой способ, более удобный... Если, конечно, не секрет... |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Что-то не пойму!..:(
У меня не возникает проблем ни с пуском, ни со свернутыми окнами... Символ посылается всегда... |
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Ну незнаю быть может у меня китайская англофицированая винда....
|
|||
|
||||
| qweqwe |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.1.2007 Репутация: нет Всего: 0 |
Я пишу программу для онлайн игры где спомощью неё можно автоматизировать AFK.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Понятно. Ну, других способов, кроме выбранного тобой, предложить не могу...:(
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Ребят, может есть где-то тема, но я не нашел. Интересует следующая вещь:
Нажатие сочетания клавиш (напр. alt+R) в окне с названием например WINDOW и клики по заданным точкам этого приложения при нажатии кнопки. С одной кнопко вроде что-то понятно и с кликом мыши просто по экрану, но надо чтобы кликало и нажималось по свернотому приложению с определенным заголовком. Сможете помочь? |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Чуть попозже посмотрю, что можно сделать...
|
|||
|
||||
| I_Am_Rock |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Alt+R...
...чтобы это делалось в окне WINDOW
С нажатием мыши должно помочь это...
|
||||||
|
|||||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Что-то с комбинацией клавиш не оч выходит. Забил вот это:
тобишь при нажатии на кнопку жолжно посылать в окно WINDOW комбинацию клавиш. Однако ничего не происходит. Вообще. Если убать Альт, а посылать просто R, то оно посылается только, если окно WINDOW развернуто на экране, если же оно свернуто, то ничего не посылается (( Это сообщение отредактировал(а) LawYard - 12.2.2008, 20:02 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Попробуйте временно вывести окно на передний план (см. самый верхний код на этой странице)...
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
А без вывода окна в активный режим никак нельзя? Просто мне как раз и нужно чтоб окно было свернуто и туда команды посылались. Например я хочу запустиь ругое полноэкранное приложение, а если это развернется, то другое приложение повиснет или в нем произодйут нежелательные изненения) Если делать активным, то это можно написать и на скриптовом каком-нить языке, а мне надо именно в свернутое окошко(
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Так оно, по-моему, и будет оставаться свернутым... Оно просто будет как диспетчер задач - тот поверх всех окон, но ведь может быть и свернутым...
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Ок, завтра попробую, сейчас уже не успею. Спасибо, отпишусь как только попробую.
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Не вышло. Две проблемы:
1. Он все равно не посылает в свернутое окно; 2. Он не посылает комбинацию нужную. Букву R отдельно он посылает, и то только в развернутое активное окно. |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Понятно.
Есть еще один способ послать клавишу - через SendMessage. Правда, когда я раньше пробовал его использовать - он почему-то не работал... Попробую чуть попозже... |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот - как и обещал.
Символ посылается и в свернутое окно и в раскрытое. При использовании только этого способа, SetForegroundWindow скорее всего уже не нужен, но я бы все-таки советовал его оставить. Одно не понятно - как делать сочетания клавиш. Вероятно, стоит попробовать совместить и SendMessage и предыдущий способ - т.е. "зажать" Alt с помощью keybd_event, затем нажать этим способом R, затем "отжать" Alt... Но я не пробовал - лишь предпологаю...
|
|||
|
||||
| LawYard |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
При нажатии на кнопку у меня идет код:
Пробовал и просто
Не шлет ничего. Попробуй потестить на том же блокноте. Или я что-то не так сделал? |
||||
|
|||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот именно на блокноте я и проверял.
Тут есть одна тонкость - сейчас напишу код и выложу... И объясню...) |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Буквы-то, в данном случае, надо посылать не окну, а объекту находящемся на нем...
Просто этот объект "растянут" на все окно Блокнота. Чтобы понять принцип, зайди в VB и, выбрав TextBox, "нарисуй" его от верхнего левого края формы до правого нижнего. ТекстБокс занял всю форму, но согласись - печатая в ТекстБоксе, ты печаешь именно в ТекстБоксе, а не в форме... Надеюсь не слишком запутанно объяснил...) Вот код для Блокнота...
Чтобы находить дочерние (ну, и родительские) объекты на диске с VB (по крайней мере, у меня) есть прога spy++ Но я ей не пользуюсь - мне больше нравится сканер окон в проге InqSoft Sign 0f Misery. Ты легко найдешь ее в инете... Это сообщение отредактировал(а) I_Am_Rock - 13.2.2008, 21:40 |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
У меня есть InqSoft Window Scanner но он не находит никаких объектов в данном приложении. Не идентифицирует ни кнопки ни поле текстовое. То есть его индинтификатор я не знаю(
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
В каком? - В Блокноте?..
Если ты имеешь ввиду другое приложение, то, если у него небольшой объем, - выложи, я сам посмотрю... Или поищи spy++ на диске с VB. (Просто сделай "Поиск" файла с названием "spy++" на диске) Но ведь тот код, который я разместил, у тебя работает? Да? |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Нет, код, что ты дал не работаету меня при открытом\свернутом блокноте(((
И еще он ругается на строчку:
Ему не нравится "as Any" в конце. ЗЫ: да приложение большое довольно-таки( |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Поменяй на
чисто первое что в голову пришло... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Дык пробовал - не работает все равно программка. Даже на блокнот не пашет. Не знаю в чем и дело(
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Посмотри вот это архив и скажи - работает или нет...
Присоединённый файл ( Кол-во скачиваний: 11 )
rtyytr.rar 1,45 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Да, если изменить на Long, вместо Any? то посылает клавишу даже в свернутое! Но пробелм а в том, что без "Edit1" н епосылает. То есть ему надо обязательно указать конкретное место куда отправить, а я не могу узнать как идентифицируется в моей программе место ввода текста =\ Ни одной из программ котоыре я пробовал оно не обнаруживается.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Очень хочу помочь, но не знаю - как...(
Т.е. прогу эту сюда никак нельзя прикрепить (как я прикрепил архив)?.. |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Да оно весит слишком много ( >1 Гб). А есть какие-нить еще программы для этого дела или способы как-то узнать ID чат-бокса в этом приложении?
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот прога.
Находишь окно с помощью кнопки "Найти мышью". Можно родительское, можно попробовать сразу дочернее. Чтобы узнать - тот ли объект, нажимай Скрыть и Показать. Если он прячется и появляется, это он. У дочерних могут быть свои дочерние. В общем, между род. и дочерними переходи с помощью "Опред. дочерний" и "опред. родительский". Там еще есть копки "->" и "<-" для перехода по объектам своего уровня. Если что не разберешься - спрашивай. Написана мной. Прошу над ней не смеяться... Присоединённый файл ( Кол-во скачиваний: 18 )
UpravlenieObjectami.rar 17,47 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Программа нашла окошко моего приложения, но дочерних окон у нео нет, а поиск по объектам одного уровня выдал мне все мои запущенные приложения другие + какие-то безкоординатные другие без названий кучу, которые никак вроде бы не реагировали на скрыть\показать ((((
ЗЫ: программа клевая ;) ЗЫЫ: для примера - программка http://val-uopilot.narod.ru/uopilot.rar позволяет нажимать кнопки в неактивном окне. Но она не посылает нормально комбинации, точнее она их вообще что-то не посылает, хотя в поисании написано что она это должна делать нормально через команду sendex @{R} Может знаешь на каком принципе эта весчь работает? Update: кажись у меня что-то вышло! Я просто удалил строчку из твоего кода и сделал код как почти в первой версии что ты мне предложил! Он стал посылать даже в свернутое, хотя раньше этого не делал. Сейчас пойду потестю с комбинацией и отпишу тебе! Update2: не очень вышло с комбинацией Alt+R. Надо чтобы это посылалось через SendMessage что-то итпа "нажать альт потом R потом отпустить альт". Через ивенты это ясно, а через сендмеседж? Что-то не оч выходит. Это сообщение отредактировал(а) LawYard - 14.2.2008, 21:05 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Странно, что дочерние окна не найдены. Может, защита какая-то стоит...
У меня лишь однажды была такая ситуация - не мог найти дочерние окна. Эта прога Gimp - прога под Линукс - версия для Windows. Поэтому и не шла... Еще моя прога не находит "Найти мышью" неактивные (заблокированные) элементы, но находит их просмотром одноуровневых... А какую строчку из кода ты удалил? Буду думать, как сделать комбинацию через СендМесседж... З.Ы. Не спеши удалять прогу, может еще пригодится. Например, в правом нижнем углу можно посылать сообщение и если тебе нужно будет знать как реагирует объект на "посылку" клавиши, не надо будет писать код в VB... uopilot сейчас посмотрю... |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
В uopilot есть функция sendex <список клавиш> но я не знаю как вводить эти клавиши - пробовал, не получалось.
В справке написано, что альт надо вводить как "@", а как R - не понятно... |
|||
|
||||
| LawYard |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Я просто тупо убрал строчку
И все. Хотя раньше в таком же варинте, но написанная мной программа не работала, а та что ты мне прислал пашет норм. Не пойму почему. ЗЫ: R там вводить тупо как {R} или просто R:
Это сообщение отредактировал(а) LawYard - 14.2.2008, 21:44 |
||||
|
|||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
В справке написано, что в фигурн. скобках...
Ты вот убрал строку, а не пробовал после этого добавить комбинацию через ивенты? Может, пойдет... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Не хочет, только через SendMessage.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Я тут подумал...
Вот открой блокнот. Проследи, чтобы была вкл. русская раскладка клавы. Нажми по очереди "Альт", "ф", "о" Принцип понятен? Получается, что если через SendMessage их по очереди послать, то произойдет тоже самое... Проблема в том, что я не знаю коды вирт. клавиш для рус. клавы. НО если та прога, в которую ты хочешь послать сочетание клавиш, англоязычна, то проблем быть не должно... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Та нет, пробовал. Нужно именно сымитировать нажатние Альт, потом R, потом отпускание Альт.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Хмм... Может, я неправильно объяснил...
Ведь эта Alt+R прикреплена к какому-то пункту меню! И до него можно добраться нажатиями на "подчеркнутые" клавиши... Ты все-таки попробуй сделать с блокнотом, как я говорил в предыдущем посте... З.Ы. Ответ прочту завтра. Удачи! |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Дык пробовал, с блокнотом работает, но мне нужно именно комбинацией воспользоваться. Чтобы одновременно две кнопки нажались, тк там Альт не вызывает меню.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Жаль... Не знаю - что же еще можно придумать.:(
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Я кажется придумал ешение, но мне надо коды всех клавиш в Бейсике, типа:
Или я произвольно выбираю то что стоит после равно?? Просто я могу сделать простое переобозначение rлавиш типа R = alt+R и тогда через сендмесседж можно будет просто посылать клавишу R. Но побелм а втом, что оно почему-то посылает символ R, а не клавишу. Тоесть я сделал через простую скриптовую программу переобозначение клавиш и оно успешно работает если просто вручную нажимать R, но бейсиковская программа почему-то посылает именно символ а не клавишу О_О Это сообщение отредактировал(а) LawYard - 15.2.2008, 19:30 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот файл с виртуальными кодами.
То, что СендМесседж посылает именно символ в принципе неудивительно, ведь посылается wm_char (char - символ) А ты попробуй послать клавишу через ивент... Может тогда будет посылаться именно клавиша... Это сообщение отредактировал(а) I_Am_Rock - 15.2.2008, 21:32 Присоединённый файл ( Кол-во скачиваний: 9 )
_______________________.rar 1,72 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
А можно через сендмеседж послать именно клавишу а не символ?
ЗЫ: за таблицу спасибо) |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Хммм... а есть же еще помимо wm_char такие вещи как WM_KEYDOWN. Только я его вируальный код не могу найти.
ЗЫ: эх, нашел и добавил в програмку:
Я на H забиндил комбинацию клавиш в сторонней прогармме. Только он с WM_KEYDOWN не отсылает вообще ничего((( Это сообщение отредактировал(а) LawYard - 15.2.2008, 23:11 |
|||
|
||||
| I_Am_Rock |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Честно, не знаю...(
Можешь попробовать еще вот это. Вместо СендМесседж используй...
По крайней мере, у меня буковку R в Блокнот посылает...) Может она это делает как с клавишей, а не как с символом... Добавлено через 2 минуты и 38 секунд
Да я обратил внимание на wm_keydown но я не знаю как с ней работать...( Я покапаю инфу в сети насчет нее |
||||
|
|||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
через
не хочет посылать в приложение ничего( Хотя он и в блокнот не хочет послытьа О_О есть версия что что-то не правильно я сделал. Вот то что у меня вышло в итоге: Это сообщение отредактировал(а) LawYard - 15.2.2008, 23:19 Присоединённый файл ( Кол-во скачиваний: 8 )
nemoe.rar 29,83 Kb |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
В файле то, что я сам тебе посылал (через СендМесседж)
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Кажись вышло!! Щас отпишу!
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Может, ты забываешь объявлять константы?
Ведь, допустим, WM_IME_CHAR - условное выражение. Оно лишь заменяет собой значение. И его надо обяз. объявлять -
и так со ВСЕМИ константами.... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Вот он и код программки, хехехе:
То есть я зажимаю альт просто в Wndows и во всехприложения, а R уже посылаю направленно в нужное ОКНО!! Как все по детски просто, хех! Теперь осталось сделать цикл с анализом цвета в точке и нажатием мышкой по заданным Точкам. Хм.. а с мышкой могут возникнуть такие же проблемы? Клики по заданным координатам в свернутом окне?? |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Я искренне рад!
С мышью... Ну, может быть. В любом случае, ты всегда можешь рассчитывать на мою помощь. Вот, может пригодится:
Хотя кажется, можно и по-другому... Добавлено через 1 минуту и 4 секунды Пойду дрыхнуть ) Если что - спрашивай здесь, завтра почитаю... Добавлено через 2 минуты и 54 секунды С анализом цвета в точке (если возникнут трудности) я скорее всего смогу тебе помочь - там полегче. |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Нет, через ивент не пойдет, надо все же опять посылатьч ерез Сенд или что-то в этом роде!
ЗЫ: Модераторы, можете поднять уважаемому I_Am_Rock репутацию?? Он мне очень помог, посмотрите сколько мы страниц нафлудили! Это даже можна в фак, если надо оформлю) ЗЫЫ: да насчет помощи - я читал твой топик про клики в неактивное окно, но ты атм не дал часть кода который в итоге получил. Так что я не очень понял как это дело реализовать((( Это сообщение отредактировал(а) LawYard - 16.2.2008, 00:00 |
|||
|
||||
| LawYard |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Нашел в зарубеже код для клика мышью в окно, но что-то он не пашет:
Я его записал как:
Мой вариант не работает, а их вариент, в котором PostMessage Me.hwnd, WM_LBUTTONDOWN, 0&, ByVal MakeDWord(440, 407) он ругается на то что я выделил красным. Это сообщение отредактировал(а) LawYard - 16.2.2008, 13:27 |
||||
|
|||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот пример, как нажать мышаком по кнопке (можно по любому объекту; и неважно - родительскому или дочернему).
На всякий случай прикрепил проект.
Присоединённый файл ( Кол-во скачиваний: 4 )
NazhimaemMouse.rar 1,33 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Нет нет, мне опять же нужно по координатам. Забыл, что там нет никаких кнопок?) Надо клик именно по координатам в заданном окне) С координатами не знаешь как сделать? А то из того что я выложил что-то ничего не работает, а люди там откоментили что все норм.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Я сейчас проверил код, который ты выложил (первый) - действительно работает...) Почему ты решил, что он не работает?
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
В моем приложении не работал. Хм.. сейчас порпобую с твоим.. мне все же кажется что-то с моим бейсиком не то)
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
А как он не работал - выдавал ошибку что ли?
Добавлено через 2 минуты и 24 секунды В коде, который ты нашел... При нажатии на кнопку "эмулируется" нажатие на форму. В окне Immediate пишется "50, 50" - координаты произошедшего якобы нажатия. Ты можешь и по-настоящему нажимать на кнопки - так же будут записываться координаты... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Нет, ничегопросто не происходит(
Вот смотри, листинг программки:
По идее она должна кликать по кнопке Пуск. Я выбрал окно для работы - трей и задал кликать в НЕМ по координатам кнопки Пуск. Не кликает (а твоя программка с Кнопкой пуск кликает норм, где чисто по кнопке а не по координатам). |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот в том-то и суть, что ты кликаешь по НЕМ, т.е. по системной панели... И нажатие это делается как бы сквозь другой объект...
Попробуй делать нажатие для "k" - самой кнопки, выбрав в качестве координат, допустим, 15,15... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
А как сделать чтобы клик шел просто в выбранном окне? Просто задал окно и пусть в нем кликается по координатам? Кинь плиз код, у меня не выходит... пробовал и так и сяк.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Хорошо, сейчас буду писать код...
Хочу лишь заметить, что раз в том окне, в которое ты хочешь их посылать нет дочерних окон (ведь так?), то их следовательно и не надо искать - "кликать" надо по нему самому... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Ну я так и делал. Вот упрощенный код:
И оно не кликает таким образом. Я тестил на Пеинте тоже - не хочет кликать по точкам в окне пеинта. |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Так в Пеинте надо кликать как раз по дочернему...
См. прикрепленный файл... Там помимо проектного файла есть exe-шник, куда удобно слать нажатия. Запусти его и понажимай на форме. Ты увидишь красные кружки... Затем запусти проектный файл - введи заголовок моего окна ("Форма для нажатий"), и укажи координаты - X и Y (например, 40 и 40)... Экзешник я делал наспех и кружки стираются если окно свернуть (и при разворачивании). Говорю это на случай, если ты подумаешь, что посылать мышиные нажатия в свернутое окно нельзя. Хотя так делать (в свернут. окно) не пробовал - может, нельзя, может, можно... Присоединённый файл ( Кол-во скачиваний: 5 )
MouseKoordinat.rar 3,69 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Не было интернета. Сейчас скачаю и потестю)
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
СТранно. В Форму кликает нормально, если ее сделать неактивной, ну на заднем плане. А в мое приложение не кликает. Или приложение на ТАКОЙ клик не отвечает. Щас порпобую поэкспериментировать ,но есть подозрение, что нужно через следующий алгорит: переместить мышь на заданные координаты - потом клик.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Да, действительно странно...(
Попробуй сделать, перемещая мышь. |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Я что-то хм.. не нашел как переместить мышь в конкретно-выбранном приложении)) Попробовал и так и так, что-то не перемещаетсо, а ток ошибки выдает Т_Т
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Чуть попозже выложу код...)
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Если честно, я не знаю, как перемещать курсор относительно какого-то окна...
Можно, конечно, попробовать перемещать курсор по формуле (ПоложениеКурсораX + ПоложениеОкнаX, ПоложениеКурсораY + ПоложениеОкнаY). В этом случае, по идее, курсор будет ориентироваться не относительно экрана, а относительно окна... Но я советую просто - перед перемещением курсора переместить окно-цель в левый верхний угол. З.Ы. В проектном файле - 1) перемещение курсора, 2) перемещение окна в левый верхний уровень. Присоединённый файл ( Кол-во скачиваний: 4 )
XY.rar 1,34 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Хм нет, нужно именно в свернутое окно))
Сейчас пробую обуздать WM_SETCURSOR :
Пока что не очень ,но я думаю должно получится. Если сможешь раньше- отпиши) |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Хорошо....)
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Возникла проблема с GetCursorPos. Не получается описать функцию О_О
Этот код в свое время кажется тебе дали. Но у меня бейсик ругается на Type. Говорит мол сейчас так не прописываются переменные, нужна другая структура. |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Хорошо. Сейчас посмотрю - в чем проблема...
Послушай! А почему бы не развернуть окно на время "нажатия". Ты даже не почувствуешь (визуально), что окно разворачивалось... Вот примерный код
З.Ы. Я, кстати, не очень уверен, что перемещение курсора поможет с нажатием - ведь, при самом нажатии (через PostMessage) указываются координаты. Зачем же еще... Да и в моем примере (там где "красные кружки") это ведь не требовалось... Это сообщение отредактировал(а) I_Am_Rock - 18.2.2008, 22:21 |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Просто задумка в том, чтобы сперва изменить положение курсора, затем считать новые координаты и задать их через Постмесседж. Или может знаешькак клик сделать просто как ивент? Ну послать клик в окно без координат, просто по той точке где сейчас курсор?
ЗЫ: чуток позже проверю твой вариант. Спасибо. ЗЫЫ: насчет что не поможет перемещение - на скриптовых языках у меня клик удавался хорошо если предварительно переместить, а не сразу клик по х,у. Это сообщение отредактировал(а) LawYard - 18.2.2008, 22:23 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Я сейчас проверил твой код (где GetCursorPos) - у меня все нормально сработало... У меня шестая версия Бейсика... Может у тебе другая и поэтому... Если так, то тебе следует зайти в Глав. меню (через пуск) и в ветке, где устан. Бейсик и найти API Text Viewer... И там посмотреть, как нужно делать именно в твоей версии...
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
А зачем тебе нужно посылать именно в свернутое окно?
Если лишь для того, чтобы оно не было видно на экране, то можно сделать окно прозрачным... Не на 100% так как оно в этом случае станет "дырявым" и на нем нельзя будет "кликать", а на процентов 90-95, чтобы его было почти не видно, но все работало как обычно... Посмотреть, как работает прозрачность ты сможешь в той моей проге ("Управление объектами") З.Ы. У меня, кстати, днюха сегодня...) Добавлено через 3 минуты и 1 секунду Не 18 - 19... ) У меня др. часовой пояс... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Ооо, ну тогда поздравляю! Побольше бы таких отзывчивых людей)
ЗЫ: насчет прозрачности - оно не подходит, приложение тупо виснет)) Это сообщение отредактировал(а) LawYard - 19.2.2008, 00:01 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Жаль, что не могу больше ничего посоветовать...(
Ну, если будут у тебя какие-то другие вопросы - буду также искать решение проблем...) |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
У меня стоит 2008ой бейсик, поставил вот щас свой старый 6-ой. Буду тестить с перемещением через POINTAPI.
Вопрос: а у окна на заднем фоне тот же статус что и у свернутого? |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
В смысле? |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Ну как бы у свернутого окна свое состояние, описываемое какой-нить переменной, у окна на заднем плане свое, у активного свое и тп.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Тогда да - состояние одно - если я, конечно, правильно понял...
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Я что-то в тупике... кстати та программка что ты дал с кликами + прогарммка для проверки кликов - она работает походу только на эту програмку для кликов. Я взял стороннюю программу произвольную и там нашел координаты кнопки одной в окне этой программы, задал через твою прогу координаты и название окна, а оно не кликнуло. Ты не проверял ее на других приложениях? Может быть оно не кликает в мое приложение не тк приложение такое, а тк написано что-то не так?
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Да нет - и с другими прогами тоже работает.
Например, запусти Сапер, а в моей проге укажи: заголовок - Сапер X - 100 Y - 100 Нажатие происходит (открывается "квадратик"). Если в той проге, в которую ты хочешь слать нажатия, нет дочерних объектов (как в Сапере), то нажатия должны по идее работать. Насколько я помню, ты говорил, что в той программе нет доч. объектов... |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Хм... а попробуй запустиьт например дебаг этой проги, и выбрать там чтоб он кликал в окно бейсика по кнопке стоп например. Он не кликает у меня. По саперу норм кликает. А в окно бейсика и напрмиер пеинта не хочет.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
По кнопке бейсика он и не должен кликать! Для этого нужно сначала найти кнопку (ее хэндл). Сейчас покажу код...
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 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 секунд Да, кстати я не очень понял как мне задать это
Точнее ГДЕ. И не оченьпонял как дать моему WM_MOUSEACTIVATE параметр MA_NOACTIVATE? |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Сейчас посмотрю....
Архив 1 - для кнопки бейсика Архив 2 - для Пеинта (сначала выбери в Пеинте Карандаш, а лучше Кисть, чтобы заметно было) Присоединённый файл ( Кол-во скачиваний: 4 )
1_2.rar 2,81 Kb |
|||
|
||||
| I_Am_Rock |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Наверное вот это...
лучше сделать Private (Как функции) и размещать вверху (ну, где объявл. АПИ-функции)
Это лишь мои предположения... Добавлено через 1 минуту и 21 секунду Архив опять зачем-то разместился...( Это сообщение отредактировал(а) I_Am_Rock - 19.2.2008, 21:38 Присоединённый файл ( Кол-во скачиваний: 1 )
1_2.rar 2,81 Kb |
||||
|
|||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Насчет того что ты дал: я проверял именно ТУ прогармму ожидая от нее, что она будет кликать в пределах выбранного оукна по ЛЮБОЙ его части, будь то кнопка или текстовое поле и тп. То есть чтобы оно не зависело от дочерних объектов. Например, чтобы я задал только хендл окна - Пеинт, не задавая где конкретно я хочу клинуть ,только координаты, никаких дочерних объектов и полей. Тогда она не работает.
Добавлено через 1 минуту и 38 секунд на
Тоже ругается. Конкретно на Private Enum . Выделяет это красным цветом. |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Тогда можно ораганизовать поиск перед нажатием через WindowFromPoint
Она определяет хэндл объекта под курсором мышака - вне зависимости дочерн. объект или родительский. Примечание: координаты X и Y вводятся относительно экрана, а не относительно окна, поэтому перед этим желательно загнать окно в левый верхний угол (как я говорил ранее - с помощью SetWindowPos) |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Ммм, а что это даст? Я что-то не уловил мысли...
Добавлено через 27 секунд ЗЫ: здесь больше в бейсике что никто не шарит??? Кто бы еще чтоль помог нам... |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
WindowFromPoint - то, что нужно, потому что позволяет сделать так, чтобы "кликать в пределах выбранного оукна по ЛЮБОЙ его части, будь то кнопка или текстовое поле и тп."
|
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
А как его юзать? У меня что-то бошка не варит... целый день перебирал различные функции\константы\ивенты.... голова забита.
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Вот код - "нажатия" лишь по координатам.
Тестил с кнопками Калькулятора и Пуском - работает. А вот с Пеинтем почему-то не хочет... Присоединённый файл ( Кол-во скачиваний: 6 )
dddd.rar 1,67 Kb |
|||
|
||||
| LawYard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
В моем приложении тож не нажимается. Видать та же фигня что и с пеинтом(( Приду с инста подумаю как еще можно организовать нажатие в окошко. Надо искать обходные пути значит(
|
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
Блин, от незадача, пытаюсь послать в окно F5, но он его не передает, испробовал на блакноте, передает t
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
||||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
||||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
А попробуйте послать t - вдруг пошлет Ф5...
|
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
получается что по keyCode он не понимает, а берет из Ascii
если посылаю код t, то пишет большею T Это сообщение отредактировал(а) XOXOJI - 20.9.2008, 18:59 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
||||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
покожу на примере с блокнотом, у него по F5 должна дата вставляться
в основе ваш пример, с блокнотом, изменен только код кнопки VK_R Это сообщение отредактировал(а) XOXOJI - 20.9.2008, 19:19 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Через тот код действительно че-то не работает...
Вот другой... Он работает...
|
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
неа, тоже не хочет (((
Добавлено @ 19:54 попробовал через sendkeys срабатывает редко, но иногда все же срабатывает Это сообщение отредактировал(а) XOXOJI - 20.9.2008, 19:57 |
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
Не может такого быть... У меня все работает... Попробуйте - проект в прикрепл. файле... И еще проверьте, чтобы заголовок запущенного блокнота был изначальный - "Безымянный - Блокнот" Присоединённый файл ( Кол-во скачиваний: 7 )
aaa.rar 1,35 Kb |
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
Честно, не работает, должно печататься всеря и дата, а они не выходят (
|
|||
|
||||
| I_Am_Rock |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 523 Регистрация: 18.1.2008 Репутация: 12 Всего: 15 |
:( Ну, не знаю тогда, у меня все работает... Добавлено через 1 минуту и 25 секунд Посмотрите еще здесь... http://forum.vingrad.ru/topic-4340.html |
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
Даже не знаю в чем может быть разница, то что SP у винды могут быть разные, не думаю что влияет (( а sendkeys раза с 10-го срабатывает (
|
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
Спасибо почитал ту тему, вот такой код пошел, без всяких проблем
Модератор, поставь от меня плюсик, не могу еще сам ( Это сообщение отредактировал(а) XOXOJI - 21.9.2008, 07:22 |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |