1

Тема: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Подумал сделать более гибким скриптик для работы, с возможностью выбора выполнения данных скриптов к определённым из списка, или указанным компьютерам.
Есть список update.ini в нём названия ПК: comp1,comp2,comp3. Сегодня нужно будет сделать выполнение скрипта на всех машинах, завтра comp1,comp3, послезавтра только comp2. Ещё к тому-же могут появляться новые машины... Да и списки машин могут отличатся,для кнопок Update и TimeSynh  должен быть свой список.
Подскажите, как это всё сделать? Я что-то вообще не вижу как это можно сделать Со списками ещё более-менее, но я не пойму как их  выводить в гуи, и как в том-же гуи выбирать из списка, или выбирать весь список, т.е. выделить всё, отдельный элемент из списка, или отдельные элементы из списка.
Для примера лучше будет воспользоваться кодом, который в помощь мне написал serzh82saratov


BlockTimeUpdate = 21:26
BlockTimeTimeSynh = 21:26

Gui, Add, Button, x82 y10 w100 h30 gUpdate vUpdate, Update
Gui, Add, CheckBox, x52 y10 w20 h20 vCheckUpdate gCheckUpdate
Gui, Add, Button, x82 y60 w100 h30 gTimeSynh vTimeSynh, TimeSynh
Gui, Add, CheckBox, x52 y60 w20 h20 vCheckTimeSynh gCheckTimeSynh
Gui, Show, x134 y81 h175 w223, New GUI Window  
SetTimer, Block, 50000 
Return
    
Block:
    If BlockTimeUpdate = %A_Hour%:%A_Min%
    {
        GuiControl,, CheckUpdate, 1
        Gosub, CheckUpdate
    }    
    If BlockTimeTimeSynh = %A_Hour%:%A_Min%
    {
        GuiControl,, CheckTimeSynh, 1 
        Gosub, CheckTimeSynh
    }
    Return

CheckUpdate:
    GuiControlGet, CheckUpdate 
    GuiControl, % CheckUpdate ? "Disable" : "Enable", Update
    Return
    
CheckTimeSynh:
    GuiControlGet, CheckTimeSynh
    GuiControl, % CheckTimeSynh ? "Disable" : "Enable", TimeSynh
    Return
    
Update: 
    MsgBox  D:\1\update.bat 
    Return

TimeSynh: 
    MsgBox  D:\1\timesynh.bat 
    Return   

2

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

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

listbox
Практически ничего не понятно.
Что делать дальше, после выбора пунктов?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Попробую угадать:



BlockTimeUpdate = 21:26
BlockTimeTimeSynh = 21:26

Gui, Add, ListBox,  vListBox Multi r5 , Красный|Зеленый||Голубой|Черный|Белый||
Gui, Add, CheckBox, x+10 yp vCheckUpdate Section gCheckUpdate
Gui, Add, Button, x+1 yp gUpdate vUpdate, Update
Gui, Add, CheckBox, xs y+30 vCheckTimeSynh gCheckTimeSynh
Gui, Add, Button, x+1 yp gTimeSynh vTimeSynh, TimeSynh
Gui, Show, , Update & TimeSynh
SetTimer, Block, 50000 
Return
    
Block:
    If BlockTimeUpdate = %A_Hour%:%A_Min%
    {
        GuiControl,, CheckUpdate, 1
        Gosub, CheckUpdate
    }    
    If BlockTimeTimeSynh = %A_Hour%:%A_Min%
    {
        GuiControl,, CheckTimeSynh, 1 
        Gosub, CheckTimeSynh
    }
    Return

CheckUpdate:
    GuiControlGet, CheckUpdate  
    GuiControl, % CheckUpdate ? "Disable" : "Enable", Update
    Return
    
CheckTimeSynh:
    GuiControlGet, CheckTimeSynh
    GuiControl, % CheckTimeSynh ? "Disable" : "Enable", TimeSynh
    Return
    
Update: 
    GuiControlGet, ListBox
    Loop, parse, ListBox, | 
        MsgBox Запуск Update`n`n%A_Index%. %A_LoopField% 
    Return

TimeSynh: 
    GuiControlGet, ListBox
    Loop, parse, ListBox, | 
        MsgBox Запуск TimeSynh`n`n%A_Index%. %A_LoopField% 
    Return

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Всё-же есть на форуме экстрасенсы Спасибо за пример, буду на этой основе делать скрипт

5

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Сам не разберусь, опять буду вам надоедать
Как присвоить некую задачу на "Красный, зелёный"? на пример: Run, calc и Run, Word
Как вытащить из списка colors.ini цвета?

6 (изменено: serzh82saratov, 2013-04-07 18:24:53)

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Как вытащить из списка colors.ini цвета?

непонял вопрос

Как присвоить некую задачу на "Красный, зелёный"? на пример: Run, calc и Run, Word

Например так:

 

Gui, Add, ListBox, vListBox Multi r5 , Красный|Зеленый  
Gui, Add, Button, x+1 yp gUpdate vUpdate, Update 
Gui, Add, Button, y+10 gTimeSynh vTimeSynh, TimeSynh
Gui, Show, , Update & TimeSynh 
Return  
    
Update: 
    GuiControlGet, ListBox
    Loop, parse, ListBox, | 
    {
        If A_LoopField = Красный 
            MsgBox Update Run, calc
        Else If A_LoopField = Зеленый 
            MsgBox Update Run, Word
    }    
    Return

TimeSynh: 
    GuiControlGet, ListBox
    Loop, parse, ListBox, | 
    {
        If A_LoopField = Красный 
            MsgBox TimeSynh Run, calc
        Else If A_LoopField = Зеленый 
            MsgBox TimeSynh Run, Word
    }    
    Return 

Если задач немного

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: unKn0wn, 2013-04-07 18:30:27)

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Дабы не вписывать все цвета в код, возможно ли создать отдельный файл со списком, который будет использоваться для того, чтобы вытащить цвета? Что-то вроде этого
Содержание сolors.ini:
Зелёный
Красный
Синий

Ну, на каждый цвет задач будет от 1-5, разве-что "цветов" будет много

8

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Вы не знаете про команду IniRead?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

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

10

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

После первого запуска удалите первые 2 строки, ини файл будет создан в папке скрипта.



Var = Красный цвет|Зеленый цвет|Голубой|Черный|Белый
IniWrite, %Var%, сolors.ini, сolors, сolors


IniRead, IniRead, сolors.ini, сolors, сolors, %A_Space%

Gui, Add, ListBox, vListBox Multi r5 , %IniRead%
Gui, Add, Button, x+1 yp gAction vUpdate , Update 
Gui, Add, Button, y+10 gAction vTimeSynh , TimeSynh
Gui, Show, , Update & TimeSynh 
Return  
    
Action: 
    GuiControlGet, ListBox
    Loop, parse, ListBox, | 
    {
        StringReplace, Label, A_LoopField, %A_Space%, _, All 
        If IsLabel(A_GuiControl "_" Label)
            Gosub, %A_GuiControl%_%Label%
    }    
    Return 
    
TimeSynh_Красный_цвет: 
    MsgBox % A_ThisLabel 
    Return
    
TimeSynh_Зеленый_цвет: 
    MsgBox % A_ThisLabel 
    Return
    
Update_Красный_цвет: 
    MsgBox % A_ThisLabel 
    Return
    
Update_Зеленый_цвет: 
    MsgBox % A_ThisLabel 
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: GUI. Подскажите, как лучше сделать список, и выбор из списка.

Спасибо огромное. Пойду адаптировать