1 (изменено: Indomito, 2013-01-01 21:10:22)

Тема: AHK: Плавающее окно для сообщений

Нужно вывести без особых заморочек окно для вывода диагностических сообщений.

Условия.
1. Окно нужно по центру (разные мониторы)
2. Сообщения должны "ползти", т.е. старые пропадать.
3. Желательно была возможность выводить разным размером/шрифтом/цветом.
4. Кнопки Ок, Отмена и т.д. не нужны.

Я могу это сделать через GUI, но может можно по проще, а?

Всех с наступившим 2013 годом и..... пропустившим Конец Света

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

2

Re: AHK: Плавающее окно для сообщений

Проще, чем GUI - вряд ли. Компнда GUIControl в помощь.

3 (изменено: Indomito, 2013-01-01 23:04:43)

Re: AHK: Плавающее окно для сообщений

ypppu пишет:

Проще, чем GUI - вряд ли. Компнда GUIControl в помощь.

ясненько... значит будем мучатся (шутка)

Да, как центровку окна сделать, т.е. оцентрировать в зависимости от размеров раб.стола?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

4

Re: AHK: Плавающее окно для сообщений

По умолчанию окно GUI появляется как раз по центру раб. стола. Также есть встроенные переменные A_ScreenWidth, A_ScreenHeight,

5

Re: AHK: Плавающее окно для сообщений

спасибо - буду писать

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

6 (изменено: Indomito, 2013-01-07 09:02:17)

Re: AHK: Плавающее окно для сообщений

И так решил написать и сразу "затык" - надо менять текст в окне и не получается.

Вот фрагмент кода и две переменные содержимое которых надо отображать - подскажите как это сделать. Да, я раньше менял - попытался повторить... глухо.

lGui:
vTxt := "Идёт компиляция скрипта"
vTxt1 := "Идёт сохранение данных"
vTxt2 := "Идёт запуск сохранение данных"
Gui, New , -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop
Gui, Add, Text, x2 y50 w460 h180 +Center, %vTxt%
Gui, font, s18
Gui, Show, x603 y303 h185 w462
Return

GuiClose:
ExitApp

Да, размер шрифта не меняется, т.е. не отрабатывается Gui, font, s18, я его пихал в разные места - эффект нулевой.

UPD
Шрифт починил, видимо промахивался... бывает.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

7

Re: AHK: Плавающее окно для сообщений

Нужно что-то типа этого?


vTxt1 := "Идёт компиляция скрипта"
vTxt2 := "Идёт сохранение данных"
vTxt3 := "Идёт запуск сохранение данных"
vTxt4 := "Маленький мальчик купил пулемёт"
vTxt5 := "Больше в деревне никто не живёт"
vTxt6 := "Я помню чудное мгновенье"
Gui, New , -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop
Gui, Add, Text, x128 y50 w460 h18 vMsg1
Gui, Add, Text, x128 y68 w460 h18 vMsg2
Gui, Add, Text, x128 y86 w460 h18 vMsg3
Gui, Font, s8 Bold
GuiControl, Font, Msg3 
Gui, Show, x603 y303 h185 w462
Loop, 6
{
    Sleep, 1500
    GuiControlGet, Msg2
    GuiControl,, Msg1, %Msg2%
    GuiControlGet, Msg3
    GuiControl,, Msg2, %Msg3%
    GuiControl,, Msg3, % vTxt%A_Index%
}
Return

GuiClose:
ExitApp

8 (изменено: Indomito, 2013-01-07 12:38:58)

Re: AHK: Плавающее окно для сообщений

Да, только поясни почему так сложно

Loop, 6
{
    Sleep, 1500
    GuiControlGet, Msg2
    GuiControl,, Msg1, %Msg2%
    GuiControlGet, Msg3
    GuiControl,, Msg2, %Msg3%
    GuiControl,, Msg3, % vTxt%A_Index%
}
Return

По сути мне одно сообщение выводить нужно... ну это не страшно, только с циклом не понятно... ч.слово не врубаюсь.

UPD

Или он сделан для того что бы обеспечить скроллинг 4-х строк?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

9 (изменено: Indomito, 2013-01-07 12:51:09)

Re: AHK: Плавающее окно для сообщений

Всё разобрался... мне по сути надо было попроще... т.е. только одно сообщение

vTxt1 := "Идёт компиляция скрипта"
vTxt2 := "Идёт сохранение данных"
vTxt3 := "Идёт запуск сохранение данных"
vTxt4 := "Маленький мальчик купил пулемёт"
vTxt5 := "Больше в деревне никто не живёт"
vTxt6 := "Я помню чудное мгновенье"
Gui, New , -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop
Gui, Font, s12 Bold
Gui, Add, Text, x128 y50 w460 h18 vMsg1
Gui, Show, x603 y303 h185 w462
Loop, 6
{
    Sleep, 1500
    GuiControl,, Msg1, % vTxt%A_Index%
}
Return

GuiClose:
Gui, Destroy
ExitApp
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

10

Re: AHK: Плавающее окно для сообщений

Indomito пишет:

Всё разобрался... мне по сути надо было попроще... т.е. только одно сообщение

Вообще-то я это подозревал.  Но с другой стороны

2. Сообщения должны "ползти",

намекало на какое-то подобие скроллинга.

11

Re: AHK: Плавающее окно для сообщений

Да, ты верно подозревал

Кстати окно созданное кодом

Gui, New , -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop +Owner 
Gui, font, s18 Bold
Gui, Add, Text, x2 y80 w460 h180 +Center vMsg
Gui, Show, x603 y303 h185 w462
Return

GuiClose:
 Gui, Destroy
 ExitApp
Return

отказывается скрываться... перепробовал и Hide и  минимизацию, но оно реагирует только Gui, Destroy или я не так пишу или....
Мне его надо скрыть, а потом показать - как это сделать?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

12

Re: AHK: Плавающее окно для сообщений

А вот так работает:


Gui, -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop +Owner 
Gui, font, s18 Bold
Gui, Add, Text, x2 y80 w460 h180 +Center vMsg
Gui, Show, x603 y303 h185 w462
Return

GuiClose:
 Gui, Destroy
 ExitApp
Return

F11:: Gui, Hide
F12:: Gui, Show

13 (изменено: Indomito, 2013-01-07 15:08:34)

Re: AHK: Плавающее окно для сообщений

Что мешает New т.е.
Ты написал Gui, -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop +Owner
У меня было Gui, New , -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop +Owner

Или что то я "не догоняю", а?

UPD

Дело в HotKey секции

F11:: Gui, Hide
F12:: Gui, Show

А иначе ни как нельзя скрыть/показать?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

14

Re: AHK: Плавающее окно для сообщений

YMP Решил задачу, всё дело в задержка, вот фрагмент скрипта

vTxt := "Запускаем ASOS.exe"
GuiControl,, Msg, % vTxt
Sleep, 1000
; Имя запускаемого процесса 
vTarget := "ASOS.exe"
; Его рабочая папка
vWorkingDir := "C:\"
; Запускаем ASOS.exe

;******************** ЗАДЕРЖКА 3 сек **********************************
Gui, Hide
Sleep, 3000
;********************************************************************

Run, %vTarget% , %vWorkingDir%
;Запускаем редактор Notepad++ , если он был запущен ранее
if (fNP){

;*********************ЗАДЕРЖКА 5 сек**********************************    
    Sleep, 5000 
    Gui, Show
;********************************************************************

    vTxt := "Запускаем редактор Notepad++"
    GuiControl,, Msg, % vTxt
    Sleep, 1000
    vTarget := "C:\Program Files (x86)\Notepad++\notepad++.exe"
    vWorkingDir := "C:\Users\SASA\AppData\Local\Temp\nppLocalization"
    Run, %vTarget% , %vWorkingDir%
    sleep 1500 ; Чуть подождём = 1,5 сек
   }
; И выходим
gosub GuiClose
return
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro