Что нового

[Мышь, клавиатура] Работа autoit на русской ArcheAge

Noob256

Новичок
Сообщения
4
Репутация
0
У меня скрипт нажатия кнопки не работает в игре, в блокноте отрабатывает нормально.

$hWnd в скрипте от игры получаю.

Код:
#Include <WinAPI.au3> 
$hWnd = WinGetHandle("- ArcheAge - Jan 16 2014 (15:11:49) Аранзебия")
sleep(5000)
_SendMessage($hWnd, 0x6, 0x1) 
ControlSend($hWnd, "", "", "{C}")


Win7 x64

У кого нибудь получилось запустить скрипт в этой игре?
 

Dima1337

Осваивающий
Сообщения
186
Репутация
24
Могу предположить что обящания разработчиков все же были выполнены и на клиенте стоит защита от "любителей програмировать"
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Код:
_SendEx( $hWnd, "20,20", 0, 20, "PostMessage" ) ;Отправит два раза пробел в окно hWnd

Func _SendEx( $hWnd, $sHexKeys, $iDownTime = 0, $iSendInterval = 20, $sFunc = "PostMessage" ) ;Or SendMessage
    Local $aHexKeys = StringSplit( $sHexKeys, "," ), $vKey, $Idx
    Local $User32Dll = DllOpen( "user32.dll" )
    ; ---
    For $Idx = 1 To $aHexKeys[0] Step 1
		$vKey = Binary( '0x' & $aHexKeys[$Idx] )

		DllCall( $User32Dll, "long", $sFunc, "hwnd", $hWnd, "int", 0x0100, "int", $vKey, "int", 0 ) ;Down
		If $iDownTime Then _
			Sleep( $iDownTime )

		DllCall( $User32Dll, "long", $sFunc, "hwnd", $hWnd, "int", 0x0101, "int", $vKey, "int", 0 ) ;Up
		If $iSendInterval And $Idx < $aHexKeys[0] Then _
			Sleep( $iSendInterval )
    Next
    ; ---
    DllClose( $User32Dll )
EndFunc


Сто лет назад писал, попробуйте.
 
Автор
N

Noob256

Новичок
Сообщения
4
Репутация
0
это даже в блокноте не работает...
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Noob256
Все работает.

Код:
_SendEx( ControlGetHandle( "Безымянный", "", "Edit1" ), "20,20", 0, 20, "PostMessage" )

Func _SendEx( $hWnd, $sHexKeys, $iDownTime = 0, $iSendInterval = 20, $sFunc = "PostMessage" ) ;Or SendMessage
    Local $aHexKeys = StringSplit( $sHexKeys, "," ), $vKey, $Idx
    Local $User32Dll = DllOpen( "user32.dll" )
    ; ---
    For $Idx = 1 To $aHexKeys[0] Step 1
        $vKey = Binary( '0x' & $aHexKeys[$Idx] )

        DllCall( $User32Dll, "long", $sFunc, "hwnd", $hWnd, "int", 0x0100, "int", $vKey, "int", 0 ) ;Down
        If $iDownTime Then _
            Sleep( $iDownTime )

        DllCall( $User32Dll, "long", $sFunc, "hwnd", $hWnd, "int", 0x0101, "int", $vKey, "int", 0 ) ;Up
        If $iSendInterval And $Idx < $aHexKeys[0] Then _
            Sleep( $iSendInterval )
    Next
    ; ---
    DllClose( $User32Dll )
EndFunc
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Noob256
Win7 x64, запускаем блокнот(не сворачиваем, можно без фокуса), запускаем скрипт.
 

Nescoffe

Новичок
Сообщения
4
Репутация
0
У кого нибудь получилось заставить работать ArcheAge и AutoIt ? Интересует именно отправка нажатия клавиш.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Мышь, клавиатура] Работа autoit на русской ArcheAge" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

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

Viktor_Rain

Новичок
Сообщения
1
Репутация
0
Global $Paused
HotKeySet("{F5}", "Start")
HotKeySet("{F6}", "Stop")
HotKeySet("{F7}", "Close")

While 1
Sleep(100)
WEnd

Func Start()
While 1
Send("{7}")
Sleep(700)
Send("{1}")
Sleep(700)
Send("{END}")
ToolTip('Script is "START"',0,0)
WEnd
ToolTip("")
EndFunc

Func Stop()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "STOP"',0,0)
WEnd
ToolTip("")
EndFunc

Func Close()
Exit 0
EndFunc


работает в архиэйдж в активном окне. нажатие на буквы клавиатуры у меня пока не проканало но и не сильно пробовал перебил сбор лута на END
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Viktor_Rain
Вставь код в нужные теги!
 

madmasles

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


С уважением, ваш Глобальный модератор.
 
Верх