1 (изменено: KASPER, 2022-06-15 13:46:16)

Тема: AHK: Авто прием Party L2 в неактивном окне

Здравствуйте, Уважаемые форумчане, не могу разобраться с проблемой связанной с неактивным окном, а точнее с параметром ControlClick, он совершенно отказываться работать так, как я понимаю.
Вот Код, который я прилагаю, с моими комментариями и мыслями:


		F12:: ;горячая клавиша

    WinGet, L, list, Lineage II ;Получаем кол-во открытых окон и их ID

    	If L<2 ;Если открыто меньше двух то выход
			{
    			ExitApp ;Выход
			}
    WinGet, PID2, PID, ahk_id %L2% ;Получаем PID  процесса №2 (т.е. неактивного в данный момент!) по его ID
			SendMessage, 0x06, 1,,, ahk_pid %PID2% ; Дает второму окну(неактивному) статус активного
			ControlClick, x765 y828, ahk_pid %PID2% ; Отправляем в окно №2 клик в указанную зону
			ControlSend, ,{F2}, ahk_pid %PID2% ; Нажимает во №2 клавишу F2
	Return

Суть такова, я с активного окна отправляю приглашение моему второму окну, при этом нажимаю клавишу F12, то есть активирую скрипт, но работает все, кроме клика мыши в указанной зоне в параметре ControlClick, который, по идеи, должен нажимать в зоне "Да" вылетающего меню, что видно на Картинке.
Прилагаю Картинку меню, которое вылетает на втором(неактивном окне), возможно это как-то поможет понять, то что я хочу реализовать.

2

Re: AHK: Авто прием Party L2 в неактивном окне

Задержку между командами не пробовали добавить?

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: Авто прием Party L2 в неактивном окне

__Михаил__ сейчас поставил SetControlDelay, 0 все равно никакого эффекта, только нажатие F2 работает, была идея с взятием пикселей, но там много элементов меню однотипного цвета, я не знаю, как взять часть картинки, например кнопку "ДА", вырезать ее и поставить чтобы код искал совпадение и кликал в том месте. Пытался так же в активном окне функцию ControlClick реализовать, но никакого эффекта.


F12::
;=========================================
  Label1:
	Loop,
		{
			PixelSearch, xp, yp, 765, 828, 765, 828, 263760
			Sleep 3000
				If xp > 0
				Break
		}

	Random, wh1, 1790, 946
	Random, var1, 765, 828
	Random, var2, 766, 829
	ControlClick, X%var1%, Y%var2%, ahk_exe L2.exe, , left
	Sleep, wh1
  Goto, Label1
  F10:: ExitApp

4

Re: AHK: Авто прием Party L2 в неактивном окне

Задержка это команда 'Sleep'. Между командами это означает не 'SetControlDelay'.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: Авто прием Party L2 в неактивном окне

__Михаил__ Добавил 'Sleep' и ничего не изменилось...

6

Re: AHK: Авто прием Party L2 в неактивном окне

Вероятно мало добавили или есть ошибки в коде (который нам не предоставлен). Скрипт работает быстро, возможно первое окно ещё не успело отреагировать а вы уже просите второе окно принять запрос от первого.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101