【问题标题】:Can't figure out why this AutoIt code isn't working无法弄清楚为什么这个 AutoIt 代码不起作用
【发布时间】:2013-05-25 22:13:20
【问题描述】:

问题是在这个 GUI 上点击确定后,它并没有启动我拥有的功能。

Func BeginningGUI()
   #Region ### START Koda GUI section ### Form=
   $Form1 = GUICreate("Stronghold Kingdoms", 248, 95, -1, -1)
   $Password = GUICtrlCreateInput("Password", 8, 32, 233, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
   $ButtonOk = GUICtrlCreateButton("OK", 86, 64, 75, 25, $BS_NOTIFY)
   $ButtonCancel = GUICtrlCreateButton("Cancel", 167, 64, 75, 25, $BS_NOTIFY)
   $EnterPassLabel = GUICtrlCreateLabel("Please Enter Your Stronghold Kingdoms Password", 0, 12, 241, 17, 0)
   GUISetState(@SW_SHOW)
   #EndRegion ### END Koda GUI section ###

   While 1
  $nMsg = GUIGetMsg()
  Switch $nMsg
     Case $GUI_EVENT_CLOSE
        Exit
     Case $ButtonCancel
        Exit
     Case $ButtonOk
        Exit
        OpenSHK()
  EndSwitch
   WEnd
EndFunc

我希望它获取输入的单词,然后将其保存为变量并输入到后面的函数OpenSHK()中

另外,当我单独运行 OpenSHK() 时,它工作正常,所以不是那样。

【问题讨论】:

    标签: autoit


    【解决方案1】:

    您在调用 OpenSHK() 之前退出,导致它永远不会被调用。

       Case $ButtonOk
          Exit
          OpenSHK()
    EndSwitch
    

    在调用之后退出:

       Case $ButtonOk
          OpenSHK()
          Exit
    EndSwitch
    

    第二个问题是$Password不是用户输入的密码;这是一个控制ID。您需要使用GuiCtrlRead 来检索用户在单击Ok 按钮后输入的值。

    【讨论】:

    • 谢谢,但现在每当我在点击确定后尝试运行它时,它并没有保存我为 $Password 输入的内容。
    • 您应该在您的问题中明确说明,该问题仅询问未调用的函数。我已经编辑以包含另一个问题,但它确实应该是第二个单独的问题。该站点针对每个帖子一个问题而设计,因此可以提供一个答案。多个问题意味着不同的人每个人都可以回答其中一个问题,因此很难确定正确的答案。 (我回答第 1 题,其他人回答第 2 题,这两个答案都对他们的问题领域是正确的。哪一个是“正确的”并且可以接受?)
    • 啊,感谢您提供的信息,对此感到抱歉。我已经在另一个页面上发布了关于这个项目的另一个问题,就像你建议我对更多问题所做的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    相关资源
    最近更新 更多