[已解决]AU3可不可以模拟操作手柄啊?
本帖最后由 yinui 于 2013-9-2 14:28 编辑AU3可不可以模拟操作手柄啊?
AU3有模拟键盘操作(SEND),那有没有模拟手柄操作呢? 楼主要的是这个吧
#include "GUIConstants.au3"
Local $joy,$coor,$h,$s,$msg
$joy = _JoyInit()
GUICreate("Joystick Test",300,300)
$h= GuiCtrlCreatelabel("",10,10,290,290)
GUISetState()
while 1
$msg = GUIGetMSG()
$coor = _GetJoy($joy,0)
$s = "Joystick(0):" & @CRLF & _
"X: " & $coor & @CRLF & _
"Y: " & $coor & @CRLF & _
"Z: " & $coor & @CRLF & _
"R: " & $coor & @CRLF & _
"U: " & $coor & @CRLF & _
"V: " & $coor & @CRLF & _
"POV: " & $coor & @CRLF & _
"Buttons: " & $coor
GUICtrlSetData($h,$s,1)
sleep(10)
if $msg = $GUI_EVENT_CLOSE Then Exitloop
WEnd
_JoyClose($joy)
;======================================
; _JoyInit()
;======================================
Func _JoyInit()
Local $joy
Global $JOYINFOEX_struct = "dword"
$joy = DllStructCreate($JOYINFOEX_struct)
if @error Then Return 0
DllStructSetData($joy,1,DllStructGetSize($joy),1) ;dwSize = sizeof(struct)
DllStructSetData($joy,1,255,2) ;dwFlags = GetAll
return $joy
EndFunc
;======================================
; _GetJoy($lpJoy,$iJoy)
; $lpJoy Return from _JoyInit()
; $iJoy Joystick # 0-15
; Return Array containing X-Pos, Y-Pos, Z-Pos, R-Pos, U-Pos, V-Pos,POV
; Buttons down
;
; *POV This is a digital game pad, not analog joystick
; 65535 = Not pressed
; 0 = U
; 4500 = UR
; 9000 = R
; Goes around clockwise increasing 4500 for each position
;======================================
Func _GetJoy($lpJoy,$iJoy)
Local $coor,$ret
Dim $coor
DllCall("Winmm.dll","int","joyGetPosEx","int",$iJoy,"ptr",DllStructGetPtr($lpJoy))
if Not @error Then
$coor = DllStructGetData($lpJoy,1,3)
$coor = DllStructGetData($lpJoy,1,4)
$coor = DllStructGetData($lpJoy,1,5)
$coor = DllStructGetData($lpJoy,1,6)
$coor = DllStructGetData($lpJoy,1,7)
$coor = DllStructGetData($lpJoy,1,8)
$coor = DllStructGetData($lpJoy,1,11)
$coor = DllStructGetData($lpJoy,1,9)
EndIf
return $coor
EndFunc
;======================================
; _JoyClose($lpJoy)
; Free the memory allocated for the joystick struct
;======================================
Func _JoyClose($lpJoy)
DllCallbackFree($lpJoy)
EndFunc
Pcbar 资料真是多,收藏了 等我买了手柄再来测试 哈哈
页:
[1]