dhwc 发表于 2011-12-26 14:58:14

请达人看下这段检测按键动作并计数的代码哪错了

本帖最后由 dhwc 于 2011-12-26 18:13 编辑

想做个测试程序,用小键盘123分别代表高兴、生气、平和等情绪,按回车键统计按键结果,按X键退出程序,程序自动统计按键结果并输出到文本和提示框。代码如下,有两个问题:
1.按了回车键之后统计结果,再按x键不能退出程序;
2.按键的统计数字不能输出显示?

本人特菜,恳请指教,谢谢!



#include <Misc.au3>
if not FileExists ("统计结果.txt") then FileClose(FileOpen("统计结果.txt",10))
$dll = DllOpen("user32.dll")
While 1
$a = 0
$b = 0
$c = 0
    Sleep ( 20 )
    If _IsPressed("61", $dll) Then
    $a = $a + 1
    EndIf
    If _IsPressed("62", $dll) Then
    $b = $b + 1
    EndIf
    If _IsPressed("63", $dll) Then
    $c = $c + 1
    EndIf      
    If _IsPressed("0D", $dll) Then
    ExitLoop
    EndIf
    If _IsPressed("58", $dll) Then
    MsgBox(0, "统计结果", "高兴 "& $a &" 生气 "& $b &" 平和 " & $c)
    $filename=fileopen("统计结果.txt",1)
    FileWriteLine($filename,@YEAR&"年" & @MON & "月" & @MDAY & "日" & @HOUR & ":" & @MIN & " 统计结果:"&"高兴 "& $a &" 生气 "& $b &" 平和 " & $c)
    FileClose($filename)
    ExitLoop
    Exit
    EndIf
WEnd
DllClose($dll)
    MsgBox(0, "统计结果", "高兴 "& $a &" 生气 "& $b &" 平和 " & $c)
   $filename=fileopen("统计结果.txt",1)
   FileWriteLine($filename,@YEAR&"年" & @MON & "月" & @MDAY & "日" & @HOUR & ":" & @MIN & " 统计结果:"&"高兴 "& $a &" 生气 "& $b &" 平和 " & $c)
    FileClose($filename)
Exit

user3000 发表于 2011-12-26 18:12:21

要达到你的目的, 把变量 a , b , c 移到 While 1 前面。
把第一个 ExitLoop 改为 ContinueLoop.

在循环里反复给变量赋0值, 这还统计什么呀

dhwc 发表于 2011-12-26 18:19:42

谢谢你!看了下,确实是
改了之后按回车键没有暂停并统计了啊?

user3000 发表于 2011-12-26 18:51:02

谢谢你!看了下,确实是
改了之后按回车键没有暂停并统计了啊?
dhwc 发表于 2011-12-26 18:19 http://www.autoitx.com/images/common/back.gif


    你要看到统计框就把 Msgbox 那句复制到 那个 ContinueLoop 前面,
   如果还要把统计写进文本, 那就,,,,不用我说了吧?

dhwc 发表于 2011-12-26 20:01:20

谢谢你,基本是完成了,现在是完善它,加上GUI,并且判断按键按下和弹起才算一个动作
页: [1]
查看完整版本: 请达人看下这段检测按键动作并计数的代码哪错了