2014-12-10 5 views
2

Я пытаюсь отобразить и обновить элемент gui (текстовая строка). Может ли кто-нибудь сказать мне, что я делаю неправильно здесь? Исходный текст никогда не заменяется обновляющим текстом в цикле.Как обновить графический интерфейс AutoHotkey?

kills=0 

#n:: 
Gui,Add,Text,vStatus, starting the killing 
Gui,Show,w250 h375 
Loop 
{ 
GuiControl,,vStatus, killed %kills% Glorks! 
kills+=1 
Sleep,3000 
} 
return 

ответ

3

Вот рабочий код:

kills=0 

#n:: 
    Gui,Add,Text,vStatus, starting the killing 
    Gui,Show,w250 h375, Glorks counter 
    Loop 
    { 
     IfWinNotExist, Glorks counter 
     { 
      Gui, Destroy 
      return 
     } 
     GuiControl,,Status, killed %kills% Glorks! 
     kills+=1 
     Sleep,3000 
    } 
return 

Ваши ошибки:

  1. Вы должны использовать Status вместо vStatus в GuiControl команды.

  2. Когда вы закрываете GUI, вы не останавливаете цикл, поэтому IfWinNotExist обнаруживает, что окно существует, а если оно не существует, оно уничтожит все gui-переменные и выйдет из цикла. Поэтому вы можете снова нажать Win + n и снова начать gui.

Примечание: Если вы хотите, чтобы начать отсчет убивает каждый раз, когда от 0, когда графический интерфейс запускается затем переместите kills=0 направо после #n::

Кроме того, всегда используйте AutoHotkey и его documenatation из http://ahkscript.org/ (текущая версия uptodate, новый официальный сайт)! AutoHotkey и его документация с autohotkey.com устарели, и у вас могут возникнуть проблемы с их использованием!

Смежные вопросы