Что нового

[Мышь, клавиатура] Отправить в свёрнутое окно сочетание клавиш ALT+1

Shaman

Знающий
Сообщения
33
Репутация
5
При использовани ControlSend() столкнулся с такой роблемой: если отправлять свёрнотому окну сочетание Alt+1 или любая другаяя комбинация с Alt, то Alt жмётся во всей системе, а не только для приложения. Кроме того, если окно свёрнуто, то сочетание Alt+1 не отправляется. Код использую такой: ControlSend($title,"","","!1"). Пробовал итак - ControlSend($title,"","","{ALTDOWN}1{ALTUP}"). Собственно задача - отправить в свёрнутое окно сочетание клавиш ALT+1.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Shaman [?]
Код использую такой: ControlSend($title,"","","!1")
и что это за Control у которого нет ID? как ты хочешь идентифицировать Control? и потом, что за приложение?
Пробовал итак - ControlSend($title,"","",
этот код вообще не правильный.
Собственно зажача - отправить в свёрнутое окно сочетание клавиш ALT+1.
зачем? возможно конечный результат можно добиться другими средствами. А вообще, для Mozilla например, в свернутом положении такой код
Код:
ControlSend('[CLASS:MozillaUIWindowClass]', '', '[CLASS:MozillaWindowClass;INSTANCE:5]', '!1')

прекрасно переключает браузер на первый по счету таб. поэтому, твой изначальный посыл, по крайней мере в моем случае, неверен.
 
Автор
S

Shaman

Знающий
Сообщения
33
Репутация
5
Кароче так. На все вопросы отвечаю зсразу. Приложение - не браузер, не прочая деребедень а клиент игры. Если вы найдёте в том же diablo хоть один элемент управления - снимаю шляпу. ControlSend($title,"","","{F1}") работает абсолютно правильно, если не верите - можете проверить. Проблема уже обозначена - КРИВАЯ РАБОТА ControlSend для сочетания клавиш с ALT. Прошу помочь именно с этим, а не с отправкой сообщений в мозилу.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Shaman [?]
Проблема уже обозначена - КРИВАЯ РАБОТА ControlSend для сочетания клавиш с ALT
я бы добавил, КРИВАЯ РАБОТА ControlSend для сочетания клавиш с ALT в сверхсекретной игре название которой разглашать нельзя ни под каким предлогом. ибо в других приложениях во время свернутого состояния прекрасно отправляются любые комбинации клавиш, будь то с Alt или без.
если не верите -
верю. но проверить не могу. ни одной игры под рукой нет, т.к. по мне, так это игры являются
прочая деребедень
, тем более без названия. рекомендую подождать других участников, мой пост на правах офтопа
 
Автор
S

Shaman

Знающий
Сообщения
33
Репутация
5
Насчёт сверсекретной игры - если вы никогда не занималались комерческим проектами, то сочувствую. Свою команду я подводить не буду, тем более конкуренция большая, поэтому лишние сообщать не намерен.
Что косаемое корректной работы в других оприложениях - пример на пальцах. Только под русскую виду:
Код:
Send("#e")
Sleep(3000)
Run("calc")
WinActivate("Мой компьютер")
$i=0
While $i<10
ControlSend("Калькулятор","","","!1")
Sleep(3000)
$i+=1
WEnd

Если вы не знаете о существовании проблемы, то это не значит, что её нет.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
OffTopic:
Shaman [?]
Насчёт сверсекретной игры - если вы никогда не занималались комерческим проектами, то сочувствую.
нет. не занимался. и не собираюсь. более того, не понимаю, чему тут сочувствовать. по твоему "Разработчик игр" - это единственная профессия? Скажу больше, по твоему это единственное чем может заниматься программист? спасибо. улыбнул ;D

а по поводу конкуренции и прочей лирики про команду, это все хорошо. только ни из одного твоего сообщения и намека не было, что это ты (и команда) разрабатывают игру. а мой хрустальный шар сегодня на ремонте. интуиция на отдыхе. так что извини, если мои требования огласить название (в которое, я уж по глупости подумал, ты играешь) прозвучало как просьба огласить какую-либу тайну ;)

Что косаемое корректной работы в других оприложениях - пример на пальцах
пример к сожалению не удачный. т.к. ни в калькуляторе, ни в проводнике комбинация alt+1 ничего не делает. поэтому твой пальцевый пример открыл мне оба приложения и посылал туда команды. я, чесгря, не понял что ты хотел этим показать. а мой пример с ФФ был обусловлен как раз тем, что там alt+1 это вполне осмысленная команда - переключение таба на самый первый по счету, который у меня норм отработал.
ну и на последок, ты не понял самой сути моих сообщений - т.к. я не являюсь ни игроком ни разработчиком игр, то ведя дискуссию со мной (пусть хоть и интересную) ты, боюсь не ответишь на свои вопросы. а я отвечаю лишь потому, что считаю неприличным оставлять без ответа сообщение адресованное непосредственно мне. поэтому я тебе рекомендую все же дождаться более "наигранных" участников форума. возможно они подскажут тебе где тут собака зарылась. воздержись от ненужных диспутов во избежание перехода темы в ненужное русло и дальнейшее закрытие, если ни мной, так другими модераторами.
удачи :ok:
 
Автор
S

Shaman

Знающий
Сообщения
33
Репутация
5
Ну что ж, раз Вы действительно не понимаете проблемы (хоть даже пальцевый пример её демонстрирует), тогда действительно - и Вам удачи! :-X
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Shaman
Теперь увидел, про что ты говоришь. Мелькание меню File при посыле сообщения? как я и думал, все дело в отсутствии контрола в команде. попробуй так
Код:
Send("#e")
Sleep(3000)
Run("calc")
WinActivate("My Computer")
$i=0
While $i<10
ControlSend("Calculator","","[CLASS:Edit;INSTANCE:1]","!1")
Sleep(3000)
$i+=1
WEnd

у меня нормально уходят сообщения. Файл у проводника не моргает.
отпиши результат.
 
Автор
S

Shaman

Знающий
Сообщения
33
Репутация
5
Скажу сразу, что в данный момент мы пишем не игру, а БОТА для игры. Тема была созданна в данном разделе, а не в разделе для ботокодеров из-за того, что такой же баг выскакивает и при других ситуациях - пример с калькуляторм и проводником.
Суть в том, что клиент игры не имеет ни одного контрола. Не знаю даже, есть ли примеры подобного, не игры. Вспомните любую игру, которая использовала directX. Т.е. сочетание ALT+1 я посылаю всему окну. Ну не могу я там послать чему-то конкретному, это просто по определению не возможно. Т.е. именно это "Мерцание" и является проблемой, ибо оно вызванно нажатием альта для всей системы, а не конкретного окна.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Shaman
так ты проверил? мерцание связано с тем, что контрола нет?
потому как если я отправляю ControlSend в окно с контролом, все отправляется. если без, то не отправляется. ни !1 ни {F1}
 

Irlandec

Новичок
Сообщения
21
Репутация
0
Пробовал итак - с. Собственно задача - отправить в свёрнутое окно сочетание клавиш ALT+1.
а ты пробовал распилить на несколько действий?
Код:
ControlSend($title,"","","{ALTDOWN}")
ControlSend($title,"","","{1}")
ControlSend($title,"","","{ALTUP}")

нету под рукой ММОигрушки не могу проверить))
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Irlandec,
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
(подробнее), а обычный код соответственно в тег [code]
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 
Верх