1

Тема: AHK: первый показ msgbox

Здравствуйте. Как сделать так чтоб при первом включении скрипта показывался msgbox , а при выполнении команды reload этот msgbox не выскакивал как при первом запуске? Есть ли возможность это реализовать?

2 (изменено: __Михаил__, 2024-11-17 22:37:15)

Re: AHK: первый показ msgbox

Возможность такая есть, на форуме искать надо.
Например в этом посте.

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

3 (изменено: Сергей Ачкасов, 2024-11-19 16:12:53)

Re: AHK: первый показ msgbox

То как показано в этом посте не работает , все равно выскакивает msgbox при выполнении команды reload.

4

Re: AHK: первый показ msgbox

Сергей Ачкасов, потеряли точку в конце предложения.

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

5

Re: AHK: первый показ msgbox

Вы серьезно? Нет бы помочь , мы про точку в конце предложения разговор ведем. Я понимаю , что грамотно нужно писать , можно было бы в одно сообщение как то и помочь и обратить внимание на эту точку...

6

Re: AHK: первый показ msgbox

Я понимаю , что это сто процентов легко сделать, просто не могу найти команду для этого , нигде не написано.

7

Re: AHK: первый показ msgbox

Сергей Ачкасов пишет:

Вы серьезно?

А вы? Вам же уже вроде было сделано замечание. Повторно нарушая правила, вы демонстрируете неуважение к форуму. Если хотите получать помощь в дальнейшем, пожалуйста, будьте внимательнее.

Сергей Ачкасов пишет:

при выполнении команды reload

Вам не обязательно перезагружать скрипт именно командой reload. Просто перезапускайте скрипт с параметром, как показано в примере, а в начале скрипта проверяйте, был ли передан параметр, в зависимости от этого выполняйте дальнейшие действия.

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

8 (изменено: Сергей Ачкасов, 2024-11-19 16:47:07)

Re: AHK: первый показ msgbox

Я так понимаю, параметр не был передан, т.к. создается снова начальный msgbox.

9

Re: AHK: первый показ msgbox

Вобщем, не работает этот пример , создает msgbox всегда в начале, и при первом включении, и при перезапуске.

10

Re: AHK: первый показ msgbox

В смысле не работает? Покажите, как запускаете.

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

11 (изменено: Сергей Ачкасов, 2024-11-19 19:11:13)

Re: AHK: первый показ msgbox

Вобщем взял за основу код из того поста:

#SingleInstance Off
SetTitleMatchMode, 2
DetectHiddenWindows, On

if A_Args[1]
   MsgBox, 64, Готово, Script запущен!
else {
   WinGet, list, List, %A_ScriptName% ahk_class AutoHotkey
   found := false
   Loop % list
      continue
   until list%A_Index% != A_ScriptHwnd && found := true
   
   if !found
      MsgBox, 64, Готово, Script запущен!
   else {
      MsgBox, 48, Перезапуск, Выполняется перезапуск Script. Программа будет открыта через несколько секунд..., 2
      Run, % A_ScriptFullPath . " 1"
      ExitApp
   }
}

^2::
reload
return

При включении скрипта он выдает msgbox: "Готово, Script запущен!", и так же при перезагрузке скрипта он выдает тоже самое, как будто код был вот таким:

msgbox, 64, Готово, Script запущен!

^2::
reload
return

Также я сделал второй вариант, который работает как надо , но только двумя ахк-скриптами.
Первый:

Gui, color, FFEBCD
Gui, Font, S8 С8B4513, Verdana
Gui, Font, S20 с8B4513, Verdana
Gui, Add, Button, x132 y249 w200 h80 gctrlevent vbotton1, Понял, принял
Gui, Font, S20 C8B4513, Verdana
Gui, Add, Text, x62 y29 w350 h100 , Добро пожаловать в мой скрипт`, справкка открывается на клавишу
Gui, Font, S20 C006400, Verdana
Gui, Add, Text, x192 y149 w80 h30 , Insert
; Generated using SmartGUI Creator 4.0
Gui, Show, x603 y184 h379 w479, " "

ctrlevent(ctrlhwnd:=0, guievent:="", eventinfo:="") {
Gui, Button:
gui, Destroy
guiclose:
run %a_workingdir%/ahk.ahk
exitapp
}
return

^2::
reload
return

Он запускает интерфейс в котором просто текст и кнопка выключения его самого и перехода во второй скрипт. Главный вопрос в том как мне сделать не два таких скрипта, а все в одном? По итогу из отправленного поста ничего не сработало , ни один из вариантов.

12

Re: AHK: первый показ msgbox

teadrinker пишет:

в начале скрипта проверяйте, был ли передан параметр, в зависимости от этого выполняйте дальнейшие действия

#SingleInstance Force
if !A_Args[1] {
   MsgBox Скрипт запущен первый раз
}
Gui, Show, w300 h300
return

GuiClose() {
   ExitApp
}

^2:: Run, %A_ScriptFullPath% param
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: первый показ msgbox

Есть, спасибо, сработало!