Autohotkey 时间戳文件记录操纵杆按钮按下

Autohotkey 时间戳文件记录操纵杆按钮按下,autohotkey,joystick,Autohotkey,Joystick,这是我们在实验室中运行的一个实验。首先,脚本要求输入参与者编号,并用C:创建一个文件。在实验过程中,一名手持游戏板的参与者按下一个按钮(8),每次按下按钮时,文件都会以当前时间写入。q按钮返回退出消息并结束脚本 而且它不起作用。我认为问题围绕着操纵杆。非常感谢您的帮助 FormatTime, timestamp, , yyyy_MM_dd_HH_mm JoystickNumber = 1 #SingleInstance #persistent InputBox, ssnum, Su

这是我们在实验室中运行的一个实验。首先,脚本要求输入参与者编号,并用C:创建一个文件。在实验过程中,一名手持游戏板的参与者按下一个按钮(8),每次按下按钮时,文件都会以当前时间写入。q按钮返回退出消息并结束脚本

而且它不起作用。我认为问题围绕着操纵杆。非常感谢您的帮助

FormatTime, timestamp, , yyyy_MM_dd_HH_mm
JoystickNumber = 1      
#SingleInstance
#persistent

InputBox, ssnum, Subject Number, Please enter the participant number
if ErrorLevel
    ExitApp
else
thefilename=%ssnum%_T_%timestamp%
    FileAppend,
        (
            %ssnum%%timestamp%
        ), C:\%thefilename%.txt
    return

Loop
{
GetKeyState, state, Joy8
    if state = D
        FileAppend,
        (
            %timestamp%, 
        ), C:\%thefilename%.txt
}

q::
MsgBox Exiting.  Your data is saved in the C drive as %thefilename%.txt
ExitApp

主要的问题是,在返回到循环之前,您正在点击一个
return

我已经清理了你的代码,并把你的循环变成了一个热键。这将防止在持有密钥时多次写入文件。如果您需要计算按钮的按住次数,可以使用已有的循环

FormatTime, timestamp, , yyyy_MM_dd_HH_mm
JoystickNumber = 1      
#SingleInstance
#Persistent

InputBox, ssnum, Subject Number, Please enter the participant number
if ErrorLevel
    ExitApp

thefilename = C:\%ssnum%_T_%timestamp%.txt
FileAppend, %ssnum%`t%timestamp%`n, %thefilename%

~Joy8::
    FormatTime, timestamp, , HH:mm:ss
    FileAppend, %timestamp%`n, %thefilename%
Return

q::
    MsgBox Exiting.  Your data is saved in the C drive as %thefilename%
    Run % thefilename
    ExitApp

这应该在每次按键时输出一个文件,还是有一个日志文件显示按键时的所有时间戳?这是我的错误。C:\%thefilename%.txt实际上已经被写入。它看起来像是你在点击循环之前点击了一个
return
。我会把我的建议作为回答。