Что нового

[Мышь, клавиатура] Отправка нажатия клавиш в трей

takse

Новичок
Сообщения
12
Репутация
0
Доброго времени суток!
Столкнулся с идеей отправки нажатия клавиш в трей.

С свернутым окном все понятно
Код:
ControlSend()

отлично с этим справляется.

А вот есть ли подобная команда которая отправляла бы в трей?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
takse [?]
команда которая отправляла бы в трей
Отправляла бы что?

Когда окно "сворачивается" в трэй, в большинстве случаев оно просто скрывается, а не уничтожается. А ControlSend() может работать и со скрытыми окнами.
 
Автор
T

takse

Новичок
Сообщения
12
Репутация
0
Реализация отправки нажатий клавиш 1,2,3, SPACE и т.д.

Пробовал, не отправляет.
Код:
Func _AAL()
While 1
   $h1 = WinGetHandle("Royal Quest")
   		ControlSend($h1,"","", 2, "")	
	    ControlSend($h1,"","", '{SPACE}', "")
		ControlSend($h1,"","", '{SPACE}', "")
		ControlSend($h1,"","", '{SPACE}', "")
		ControlSend($h1,"","", '{SPACE}', "")
		Sleep(28000)
	WEnd
EndFunc

В свернутое отправляет, в трей нет.
Возможно это связано из-за использования сторонней программы, которая скрывает игру в трей


Добавлено:
Сообщение автоматически объединено:

Прошу прощения, работает но через раз.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
А если вместо сворачивания в трей использовать WinSetState(,,@SH_HIDE)?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
Z_Lenar, это вопрос (мне) или предложение (ему)?
Если вопрос (мне), то, как я и написал выше, фактически это одно и то же: прячется окно и создаётся иконка. При клике на иконке происходит
Код:
WinSetState($hWnd, "", @SW_SHOW)
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
InnI
Большинство игр реализованных на DirectX практически работают в бесконечном цикле.
Я не могу скачать клиент для проверки, поэтому предлагаю takse проверить мою версию с @SW_HIDE. Т.к. разработчики могли добавить в основной цикл таймаут в случае "сворачивания в трей". Ну для экономии ресурсов типа...
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
Z_Lenar
Хорошо вы отредактировали сообщение - вообще весь смысл изменился :smile:
takse использует стороннюю программу для скрытия окна, которая фактически делает то, что вы предлагаете. Разработчики игры тут не при чём.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
InnI
Извините не заметил :-X

takse
Что если программа которая "сворачивает в трей" понижает приоритет выполнения процесса/потоков? Попробуйте реализовать скрытие окна через AutoIt. Или хотя-бы скажите что-это за программа?
 
Автор
T

takse

Новичок
Сообщения
12
Репутация
0
Z_Lenar

4t Tray Minimizer, скачал первое что попалось в интернете, но как по мне, эта программа с своей работой справляется, в трей свернуть можно почти все.

Сейчас попробую ваш вариант


Добавлено:
Сообщение автоматически объединено:

Это великолепно! С
Код:
WinSetState($hWnd, "", @SW_SHOW)
не нужно даже использовать сторонние программы :D
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
takse
Если у вас нормально работает в свёрнутом окне, зачем его скрывать? Неужели вам места на панели задач не хватает? Или вы от начальства игру прячете? ;)
 
Автор
T

takse

Новичок
Сообщения
12
Репутация
0
InnI

В точку! На работе часто всякие зиваки ходят и "палят" в монитор. Во избежания лишних вопросов и возникла данная задача - спрятать лишнее :smile:
 
Верх