1

Тема: AHK: ошибка при повтороном вызове Gui

Есть идея реализовать скрипт для ведения хронометража - каждый определённый промежуток времени выскакивает окно, в котором следует зафиксировать то, чем ты занимаешься. Информация сохраняется в текстовом файле в виде, удобном для экспорта в excel таблицу.

Сейчас столкнулся с тем, что когда повторяется цикл - скрипт выдаёт ошибку:

Error:  The same variable cannot be used for more than one control.

Specifically: vName

	Line#
	002: WinGetTitle,title_of_active_task,A
--->	006: Gui,Add,Edit,vName
	007: Gui,Add,Button,Default w245 xs,OK

сам скрипт:


chrono_loop:  ; метка
WinGettitle, title_of_active_task, A
;msgbox %title_of_active_task%

Gui, Add, Edit, vName w500,
Gui, Add, Button, Default w245 xs, OK
Gui, Add, Button, w245 xp+255, Cancel
Gui, Show,, Чем сейчас занимаешься?..
return

ButtonOK:
FormatTime, TimeString, ,yyyy-MM-dd HH:mm ;2016-03-10 11:55
Gui, Submit  ; Save the input from the user to each control's associated variable.
;MsgBox You entered "%Name%".
FileAppend, %TimeString%;%Name%;%title_of_active_task%`n, d:\chronom.txt
sleep 5000 ;
goto, chrono_loop ; возврат к метке

GuiClose:
ButtonCancel:
GuiEscape:
sleep 5000 ;
goto, chrono_loop ; возврат к метке

Подкорректируйте пожалуйста.

2

Re: AHK: ошибка при повтороном вызове Gui

Gui, Add, Button,, OK
Gui, Show, w300 h300
Return

ButtonOK:
Gui, Submit
Sleep, 1000
Gui, Show
Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: ошибка при повтороном вызове Gui

teadrinker, благодарю! А конкретно у меня в чём ошибка? Первый проход же корректно проходит.

4

Re: AHK: ошибка при повтороном вызове Gui

У вас вместо того, чтоб просто показать окно, оно создаётся заново, соответственно, название контрола повторяется.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: ~incognito, 2021-07-13 21:14:21)

Re: AHK: ошибка при повтороном вызове Gui

teadrinker У меня похожая проблема, но решается наверное чуть по другому, что я не могу понять.

Butt3:
Gui, 4:Add, Picture, x8 y0 w64 h64, иконки\SNIPERicon.png
Gui, 4:Add, Edit , x101 y3 w375 h62 vEd1

Gui, 4:Show, w488 h71, Sniper Rifle
return
4GuiClose:
Gui, submit
return

Мне нужно чтобы при открытии снова 4 гуи - ошибка не выходила.

6

Re: AHK: ошибка при повтороном вызове Gui

Для начала приведите полный код, как выводите повторно окно.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7 (изменено: ~incognito, 2021-07-13 21:18:43)

Re: AHK: ошибка при повтороном вызове Gui

__Михаил__
Создаётся новое окно, всё в этом коде.
Окно в окне - как сделать так, чтобы он не создавал новое окно?
Как я понял проблема именно в том, что создаётся новое окно.

Upd: Вот примерный код - то, что у меня получилось:

Gui, Add, Button, w60 h60 gButt1
Gui, Show, w120 h120, Test
return
Butt1:
Gui, 2:Add, Picture, x8 y0 w64 h64, icon.png
Gui, 2:Add, Edit , x101 y3 w375 h62 vEd1

Gui, 2:Show, w488 h71, Sniper Rifle
return
2GuiClose:
Gui, submit
return

8

Re: AHK: ошибка при повтороном вызове Gui

При закрытии окошка - удалять его, вот и всё решение проблемы.
AHK ругается на использовании одинаковых переменных при создании окон.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

9

Re: AHK: ошибка при повтороном вызове Gui

__Михаил__
О, спасибо большое!