Что нового

[Мышь, клавиатура] Горячие клавиши и окна в графическом режиме (OpenGL, DirectX)

RuFraz

Новичок
Сообщения
6
Репутация
0
Имеется игровое окно, и скрипт с нажатием некоторых клавиш.
Проблема в том, что включение\остановка скрипта не срабатывает внутри игрового окна.

Код:
WinActive ( "text" )


Global $Paused
Global $Cscript = 0

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{HOME}", "TogglePauseOff")
HotKeySet("{END}", "Terminate")


While 1
	If $Cscript = 1 Then
	Send ( "{F2}" )
	Sleep (100)
	Send ( "{F3}" )
    Sleep(100)
	ToolTip ("Цикл включен" , 0, 0)
ElseIf $Cscript = 0 Then
	Sleep (10)
	ToolTip ("Цикл выключен" , 0, 0)
	EndIf
WEnd

Func TogglePause()
$Cscript = 1
EndFunc

Func TogglePauseOff()
$Cscript = 0
EndFunc

Func Terminate()
	Exit 0
EndFunc


Можно это как-то решить?
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
1. Попробовать забиндить не "{PAUSE}", а например просто "p". (В игре Legue of Legend помогло)
2. Попробовать вытаскивать нажатие клавишь через http://autoit-script.ru/index.php?topic=1391.0 в архиве есть масса примеров, как определить срабатывание клавиши...
3. Был ещё вариант... использовать не {PAUSE}, а код клавиши, но где искать не помню... :smile:
 

lirikmel

Продвинутый
Сообщения
225
Репутация
84
Код:
global $VK_END = 0x23
_HotKeyAssign($VK_END, '_Exit')
udfHotKey.au3 ...это срабатывает всегда -)

PS udf есть на форуме
 
Автор
R

RuFraz

Новичок
Сообщения
6
Репутация
0
Вот так, все работает как надо

Код:
#Include <HotKey.au3>
WinActive ( "" )


Global $Cscript = 0
Global Const $VK_PAUSE = 0x13
Global Const $VK_END = 0x23

_HotKeyAssign($VK_PAUSE, 'TogglePause')
_HotKeyAssign($VK_END, 'Terminate')


While 1
	If $Cscript = 1 Then
	Send ( "{F2}" )
	Sleep (100)
	Send ( "{F3}" )
    Sleep(100)
	ToolTip ("Цикл включен" , 0, 0)
ElseIf $Cscript = 0 Then
	Sleep (10)
	ToolTip ("Цикл выключен" , 0, 0)
	EndIf
WEnd


Func TogglePause()
$Cscript = NOT $Cscript
EndFunc


Func Terminate()
	Exit 0
EndFunc


:IL_AutoIt_1:
 
Верх