0

这是针对我们在实验室中进行的一项实验。首先,脚本要求提供参与者编号并在 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
4

1 回答 1

0

主要问题是你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
于 2013-05-24T20:24:12.783 回答