Вы должны войти, чтобы создавать сообщения и темы.

Трей

1◄Страница 3 из 4►

Mikhail, я имею в виду, как должен быть заполнен ini-файл, чтобы это было эквивалентно этой команде СкопированоWinTitle := Скопировано"Имя окна"?

Я же написал, там где код кидал)

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, если я в ini-файл  вписываю СкопированоWinTitle="Имя окна", то скрипт не работает, в отличие от команды WinTitle := "Имя окна"

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

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, потому что у меня окно с именем "Имя окна")) И скрипт не работает хоть с кавычками, хоть без. Проверил несколько раз

Елки палки)), ну используй ahk_class, ahk_exe, ahk_pid, любое из них, где есть нормальное название окна.

Лайкнул Имир
Имир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

А ты кстати ini файл в какой кодировки используешь?, сохрани его в ANSI, он скорей всего кракозябры распознает, вместо кириллицы.

Лайкнул Имир
Имир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, спасибо большое! Действительно, проблема опять была в кодировке. Второй раз уже туплю. Мне пора бы уже запомнить, какие файлы в какой кодировке сохранять

Mikhail, подскажите, пожалуйста, ещё один вопрос: как прописать в скрипте и ini-файле команду запуска программ? Типа такой команды СкопированоRun, C:\Путь\К\Программе.exe, , Hide, чтобы можно было редактировать в ini-файле

#Persistent
#SingleInstance ignore
#NoTrayIcon
SetTitleMatchMode, 2
DetectHiddenWindows, On

IniRead, WinTitle, %A_ScriptDir%\config.ini, Settings, WinTitle,
IniRead, AppPath,  %A_ScriptDir%\config.ini, Settings, AppPath,

if (AppPath != "" && AppPath != "ERROR")
{
    Run, "%AppPath%", , Hide
}

Loop {
    WinWait, %WinTitle%
    hwnd := WinExist(WinTitle)
    if !hwnd
        continue

    WinGet, pid, PID, ahk_id %hwnd%

    Menu, Tray, NoStandard
    Menu, Tray, Add, Hide/Show
    Menu, Tray, Default, Hide/Show
    Menu, Tray, Add, Exit
    Menu, Tray, Click, 1
    Menu, Tray, Icon

    Process, WaitClose, %pid%
    Menu, Tray, NoIcon
}
return

Hide/Show:
    if WinExist(WinTitle) {
        if DllCall("IsWindowVisible","ptr",WinExist(WinTitle)) {
            WinHide, %WinTitle%
        } else {
            WinShow, %WinTitle%
            WinRestore, %WinTitle%
            WinActivate, %WinTitle%
        }
    }
return

Exit:
ExitApp

В конфиге:

[Settings]
WinTitle=
AppPath=C:\Windows\System32\notepad.exe
Лайкнул Имир
Имир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, добрый день! Спасибо огромное за помощь! А можно ещё добавить открытие окна в скрытом режиме? Добавил в код команду СкопированоWinHide, %WinTitle%, но она работает через раз. Добавил задержку СкопированоSleep 1000, стало лучше, но всё равно иногда не срабатывает. Подскажите, пожалуйста, как прописать правильно?

Loop {
    WinWait, %WinTitle%
    Sleep 1000
    WinHide, %WinTitle%
    hwnd := WinExist(WinTitle)
    if !hwnd
        continue

 

Имир, Привет.
Не понял что значит в скрытом режиме, он при запуске и так уже прячет приложение, при запуске hide прописан.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, не знаю, не прятал, пока я не прописал эту команду: ни при запуске AHK с открытым окном, ни при открытии окна с запущенным AHK, ни так ни так

У меня прячет все, но то я проверяю на блокноте, может от приложения зависит не знаю, вот проверил на Resource Hacke. Ты в диспетчере проверь, может ahk висит скрытно, закрой его.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
1◄Страница 3 из 4►