1 (изменено: pwch, 2023-05-03 15:28:33)

Тема: AHK: Автоматизация работы в неактивном окне.

Есть такой кусок кода и необходимо сделать чтобы он считывал пиксели в окне Object.exe и выполнял определённые нажатия если это окно в свёрнутом состоянии и продолжал выполнять их если оно открыто и при этом не блокировал возможность пользоваться другими приложениями и была возможность ставить его на паузу находясь в другом приложении.


F3:: Pause, On
F4:: Pause, Off
F5::

Loop
	{
	PixelGetColor, 1pp, 900, 323
	if 1pp = 0xFF1F95
		{
		SendInput {I}
		Sleep 100
		click 302 211
		Sleep 1000
		}
	if 1pp = 0x334F99
		{
		SendInput {E}
		Sleep 100
		click 700 123
		Sleep 1000
		}
	}    

2 (изменено: pwch, 2023-05-03 19:24:24)

Re: AHK: Автоматизация работы в неактивном окне.

Я нашёл как отправлять клавиши и нажатия через ControlSend и ControlClick но у меня не работает подскажите что не так?

F3:: Pause, On
F4:: Pause, Off
F5::

Loop
	{
	PixelGetColor, 1pp, 900, 323
	if 1pp = 0xFF1F95
		{
		ControlSend , , {I} ,  Object ;(Object.exe также пробывал использовать VK_I и VK_49 )
		Sleep 100
		Controlclick, x302 y211, Object
		Sleep 1000
		}
	if 1pp = 0x334F99
		{
		ControlSend , , {E} ,  Object ;
		Sleep 100
		Controlclick, x700 y123, Object
		Sleep 1000
		}
	}   

Был-бы очень благодарен если вы сразу скинете переписанный этот код в рабочем состоянии.

3

Re: AHK: Автоматизация работы в неактивном окне.

По ControlSend и ControlClick имеется подробное описание в русскоязычной документации. Поэтому сначала потренируйтесь с этими командами в каких-нибудь нехитрых программах вроде Paint и Notepad. Вот когда заработает с ними, тогда попробуйте в своей целевой программе. И если в ней не заработает то, что работало в Paint и Notepad, значит программа какая-то хитрая, возможно в ней защита от автоматизации.