avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 466
- Репутация:127[+] [-]
|
mat.86m _SUB m,W600H140, CHEK c1,L20T10W500H30, Перенести программы в ОЗУ после чего можно извлечь флешку (рекомендуется),,1 CHEK c2,L20T35W700H30, Запустить программы и оболочку с флешки извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0| mess продолжить ? #YN ITEM Button5,L500T80W80H22,Выход,KILL \ LABE l,L20T70W80H22,,,0x5A1BF2,18 ENVI n=6 TIME tt,1000, TEAM CALC n=%n%-1| ENVI @l= == %n% == | ifex $%n%=0,call a _END _SUB a ENVI @tt=0 ENVI @l= MESS продолжить ? #YN _END
Последний раз редактировалось: avalat (2021-03-05 20:06), всего редактировалось 1 раз
|
|
avalat, вместо чекбокса CHEK в данном случае правильно использовать радиокнопку RADI. Чтобы активным мог быть либо первый пункт, либо второй.
|
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 466
- Репутация:127[+] [-]
|
conty9, до этого что-то не додумался, спасибо !
Последний раз редактировалось: avalat (2021-03-05 20:06), всего редактировалось 1 раз
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
Здравствуйте, помогите создать такой сценарий - оболочку PEcmd. При запуске должна появиться оболочка с двумя пунктами, по умолчанию галочка стоит на одном, отсчитывается время, допустим 5сек, если ничего не трогать срабатывает пункт 1, но можно переставить на второй снизу кнопка ок. На кнопках надписи скопировать программы в ОЗУ(рекомендуется) и запустить с флэшки Для чего нужно. По умолчанию в моем windows PE программы копируются в ОЗУ и флэшку можно вынимать. Но иногда, если мало памяти или для экономии места можно было запускать программы непосредственно с флэшки.-Вырисовывается очень красиво. Думаю вместо кнопки выход должно быть "Продолжить". Если время сбилось, ставишь чекбокс на 1 или 2 нажимаешь "Продолжить", выполняется допустим start1.cmd или start2.cmd взависимости где стоит чекбокс Если переставляю чекбокс на пункт 2, возможно сделать чтобы время сбилось, пока вручную не выберешь пункт 1 или 2 и не нажмешь кнопку "продолжить". А если не трогаешь то запускается команда start1.cmd Как делается чтобыITEM Button5,L500T80W80H22,Продолжить,CALL a здесь сначала проверялось на каком пункте чекбокс и исходя из этого срабатывал допустим start1.cmd или start2.cmd ? Должно быть что такое TEAM ENVI @Timer1=0|ENVI ?m _SUB m,W600H140, RADI c1,L20T10W500H30, Перенести программы в ОЗУ после чего можно извлечь флешку (рекомендуется),,1 RADI c2,L20T35W700H30, Запустить программы и оболочку с флешки, извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0| mess продолжить ? #YN ITEM Button5,L500T80W80H22,Продолжить,CALL a LABE l,L20T70W80H22,,,0x5A1BF2,18 ENVI n=6 TIME tt,1000, TEAM CALC n=%n%-1| ENVI @l= == %n% == | ifex $%n%=0,call a _END _SUB a ENVI @tt=0 ENVI @l= Start.cmd|KILL \%m% _END
|
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 466
- Репутация:127[+] [-]
|
mat.86, ошибка - запятая после слова <флешки,> - нужно без запятойRADI c2,L20T35W700H30, Запустить программы и оболочку с флешки, извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0| mess продолжить ? #YN Добавлено через 24 минуты 13 секунд: mat.86,кодwin _SUB win,W520H150, RADI c1,L20T10W500H30, Перенести программы в ОЗУ после чего можно извлечь флешку (рекомендуется),call a,1 RADI c2,L20T35W700H30, Запустить программы и оболочку с флешки - извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0 ITEM Button5,L370T72W90H30,Продолжить,call b LABE l,L20T70W80H22,,,0x5A1BF2,18, ENVI n=6 TIME tt,1000, TEAM CALC n=%n%-1| ENVI @l= == %n% == | ifex $%n%=0,call a _END _SUB a ENVI @tt=0 ENVI @l= mess start1.cmd _END _SUB b ifex $%c1.Check%=1,mess start1.cmd ifex $%c2.Check%=1,mess start2.cmd _END
Последний раз редактировалось: avalat (2021-03-06 14:46), всего редактировалось 4 раз(а)
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
avalat, Вместо сообщений я подставил свое действие, все срабатывает, кнопка продолжить здесь не нужна, хотя с ней красивее. Последний штрих, как сделать чтобы выполнялось закрытие окна сразу после запуска действия. Сделал так, но выход срабатывает только после выполнения start1.cmd или start2.cmd, но если в них длинный сценарий, то окно будет висеть долго пока start1.cmd не закроется. В cmd есть команда & , как здесь можно такое реализовать?win _SUB win,W520H150, RADI c1,L20T10W500H30, Перенести программы в ОЗУ после чего можно извлечь флешку (рекомендуется),call a,1 RADI c2,L20T35W700H30, Запустить программы и оболочку с флешки - извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0| call b LABE l,L20T70W80H22,,,0x5A1BF2,18, ENVI n=6 TIME tt,1000, TEAM CALC n=%n%-1| ENVI @l= == %n% == | ifex $%n%=0,call a _END _SUB a ENVI @tt=0 ENVI @l= start1.cmd KILL \%win% _END _SUB b ENVI @tt=0 ENVI @l= start2.cmd KILL \%win% _END
|
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 466
- Репутация:127[+] [-]
|
mat.86, Если уж сильно мешает, добавь две строчки _SUB a ENVI @win.Visible=0 ENVI @tt=0 ENVI @l= start1.cmd KILL \ _END _SUB b ENVI @win.Visible=0 ENVI @tt=0 ENVI @l= start2.cmd KILL \ _END
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
|
|
Если нужно, чтобы была запятая и она не интерпретировалась как разделительный символ, можно присвоить этот символ переменной (единственной командой, без TEAM) и оперировать ею: ENVI DDD=, win ... RADI c2,L20T35W700H30, Запустить программы и оболочку с флешки%DDD% извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0 --------------------------------------------------------------- Подпрограммы _SUB а/b не нужны. Если выбрана первая кнопка, присвоим переменной XXX=1, если вторая - XXX=2. И тогда общая подпрограмма _SUB ab ENVI @win.Visible=0 ENVI @tt=0 ENVI @l= EXEC --hide start%XXX%.cmd KILL \ _END Ключ --hide скроет батник. Ключ --wait позволит ожидать завершение работы батника, без него ENVI @win.Visible=0 не имеет смысла, поскольку сразу после старта батника сработает KILL \ (закрыть окно). ---------------------------------------------------------------Можно ли у окна убрать кнопку закрыть _SUB win,W520H150,Название,MESS Выходим или выполняем действие,,,, -nosysmenu
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
conty9, спасибо за разъяснение ,,,, -nosysmenu работает, но окно не сворачивается и не передвигается. В данном случае запятая не важна, но буду знать на будущее. По поводу подпрограммы, при запуске windows PE, уже срабатывает общий сценарий PEcmd, скорее всего этот кусочек я попробую добавить в него, после монтирования флэшки и до запуска программ. Наверное так будет удобнее. Поэтому запуск будет не %XXX%.cmd, а скорее всего другого _SUB. А вот возможно ли сделать чтобы таймер как то остановить? Я вот думаю если на принятие решения вдруг понадобиться больше времени. Или может добавить кнопку пауза или при нажатии на таймер срабатывала бы пауза. Но это если возможно, если нет так нет, буду обходиться
|
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 466
- Репутация:127[+] [-]
|
mat.86, клик по таймерукодwin _SUB win,W520H150,,,,,, -discloseb RADI c1,L20T10W500H30, Перенести программы в ОЗУ после чего можно извлечь флешку (рекомендуется),CALL a,1 RADI c2,L20T35W700H30, Запустить программы и оболочку с флешки - извлечь ее будет нельзя до перезагрузки,TEAM ENVI @tt=0|ENVI @l=|ENVI @c1.Check=0| CALL b LABE l,L20T70W70H22,,,0x5A1BF2,18, ENVI n=8 TIME tt,1000,TEAM CALC n=%n%-1|ENVI @l= == %n% == |IFEX $%n%=0,CALL a ENVI @l.MSG=0x0201: ENVI @tt=0 ENVI @l.MSG=0x0204:TIME tt,1000,TEAM CALC n=%n%-1|ENVI @l= == %n% == |IFEX $%n%=0,CALL a _END _SUB a TEAM ENVI @win.Visible=0|ENVI @tt=0|ENVI @l= MESS start1.cmd KILL \ _END _SUB b TEAM ENVI @win.Visible=0|ENVI @tt=0|ENVI @l= MESS start2.cmd KILL \ _END
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
Подскажите как сделать выход после выполнения подпрограммы? Допустим в сценарии идет вызов подпрограммыдалее ниже сама подпрограмма_SUB programs TEXT Копирование программ...#0xFFFFFF L35 T690 R500 B764 $24 FILE Y:\BWIM\Users=>X:\ FILE Y:\BWIM\Programs=>X:\ _END После _END идет возврат и выполнения основного сценария дальше, как сделать чтобы происходило сразу завершение всего сценария, а не возврат. Пробовал писать exit, перед _END не работает Добавлено через 2 часа 34 минуты 15 секунд: Решилось вызовом еще одного подменю._SUB programs TEXT Копирование программ...#0xFFFFFF L35 T690 R500 B764 $24 FILE Y:\BWIM\Users=>X:\ FILE Y:\BWIM\Programs=>X:\ SUB ex _SUB ex exit
|
avalat
- Стаж: 9 лет 9 месяцев
- Сообщений: 466
- Репутация:127[+] [-]
|
mat.86, попробуй_SUB programs TEXT Копирование программ...#0xFFFFFF L35 T690 R500 B764 $24 FILE Y:\BWIM\Users=>X:\ FILE Y:\BWIM\Programs=>X:\ EXIT programs _END
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
avalat, не сработало, не выходит сразу, тоже возвращается в общий список и выполняется дальше. Добавление еще одного подменю работает, я просто оставил запись, вдруг кому еще пригодится.
|
Страница 6 из 27
Текущее время: 25-Ноя 14:06
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|