Что нового

Скрин игры каждый раз при нажатии кпонки счета и раз в конце

McNamara

Новичок
Сообщения
2
Репутация
0
Собственно игра LeagueOfLegends. Клиент называется "PVP.net Client", когда находит игру, то перед самой загрузкой создается новое окно "League of Legends (TM) Client". Во время игры при нажатии ТAB показывает статистику и всю необходимую информацию, а в конце матча "League of Legends (TM) Client" закрывается и уже в "PVP.net Client" показывает общую статистику.
Нужно что бы каждый раз при нажатии TAB в "League of Legends (TM) Client" делался скрин который показывал бы текущую статистику игры и еще один после самой игры когда загрузится "PVP.net Client". Ну как бы всё.
В принципе вот мое творение, не знаю почему не работает. Добавлял мсгбоксы после каждой строчки. Вроде все шаги правильно проходит, но сам скрин делается непонятно когда через 10-20 сек, ато и вовсе не делается и самое главное каждый раз без зажатого TAB. Может кто что увидел, может что да и подскажет :(


Код:
;Для скрина
#include <ScreenCapture.au3>
;Для размера екрана
#include <WinAPIEx.au3>

;уже не помню для чего подключал
#include <Clipboard.au3>
#Include <ScreenCapture.au3>
#Include <Misc.au3>
;для закрытия програмы
HotKeySet("+^!e", "Terminate")
Local $once = 1

While 1
   While WinExists("League of Legends (TM) Client")
	  Sleep(10)
	  WinWaitActive("League of Legends (TM) Client")
	 	 ;'ловим' нажатие TAB
		 if _IsPressed('09') Then
			;нажимаем 'С' для доп. статов
			Send('c')
			$aPos = WinGetPos("League of Legends (TM) Client")
			_ScreenCapture_Capture(@DesktopDir & "/lasttabscore.jpg", $aPos[0], $aPos[1], $aPos[0]+$aPos[2]-1,$aPos[1]+$aPos[3]-1, False)
			ShellExecute(@DesktopDir & "/lasttabscore.jpg")
		 EndIf
	  ;переменна которая не даст заскринить больше чем 1 раз в конце игры
	  $once = 0
   WEnd
if $once = 0  Then
   WinWait("PVP.net Client")
   WinWaitActive("PVP.net Client")
   Sleep(1000)
   $aPos = WinGetPos("PVP.net Client")
   _ScreenCapture_Capture(@DesktopDir & "endgamescore.png", $aPos[0], $aPos[1], $aPos[0]+$aPos[2]-1,$aPos[1]+$aPos[3]-1, False)
   ShellExecute(@DesktopDir & "endgamescore.png")
   $once = 1
   EndIf
WEnd

;функция завершения програмы
Func Terminate()
   Exit
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,911
Репутация
1,427
McNamara
Добавьте в начало скрипта
Код:
Opt("WinWaitDelay", 10)


И ещё у вас "\" пропущен в указании пути к файлу
Код:
@DesktopDir & "\endgamescore.png"
 
Автор
M

McNamara

Новичок
Сообщения
2
Репутация
0
Изменил как советовали, не помогло. Но потом мне чет в голову стукнуло скомпилить и запустить от админа, в итоге начал делать скрины из игры, только "с" всеравно не прожимается либо прожимается в другом окне. Так же перед
Код:
if _IsPressed('09') Then
...

добавил
Код:
if _IsPressed("12") And _IsPressed("09") Then ContinueLoop

что бы не скринило при alt+tab - не сработало.

Что я упускаю?
 
Верх