|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сокращение / оптимизация скрипта проверки состояния и запуска служб MU |
|
[решено] Сокращение / оптимизация скрипта проверки состояния и запуска служб MU
|
Ветеран Сообщения: 904 |
Суть: есть скрипт определения состояния служб, ответственных за запуск MU. Кроме того, скрипт позволяет сделать оптимизацию служб, если их конфигурация не позволяет работать MU. Предусмотрен также откат на старые настройки (сделал обновление и снова вернул службы в исходное положение)
Проблема: 1. 2. скрипт получился слишком громоздким. Имхо, мне кажется, что его можно значительно сократить (м.б. за счет использование массивов?). Это прежде всего касается следующих блоков скрипта: а) Func _ServicesStat() б) Func _SaveOld() Как мне кажется, эти бесконечные case и If -> Endif - не совсем грамотный путь. |
|
------- Отправлено: 05:13, 26-08-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата saavaage:
- при обращению к элементу массива указывается ИНДЕКС элемента в массиве; - значение индекса изменяется от 0 до N-1 (N- кол-во элементов в массиве) ...но в данном случае можно обойтись одним массивом: |
|
Отправлено: 16:45, 31-08-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 904
|
Профиль | Отправить PM | Цитировать amel27, нельзя. Там разные условия:
для 1_1 и 3_1 - да, можно (состояние либо 4 либо 1) для 1_2 и 3_2 - 2,3,4. Причем только 2 = ok.icon для 2_2 - 2,3,4. Но только 2 и 3 = ok.ico Поэтому одномерным не обойтись... |
------- Отправлено: 16:51, 31-08-2010 | #12 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать saavaage, когда условие в скобках истинно, выбирается 2-й элемент, иначе 1-й... тут главное логическое выражение правильно составить...
![]() |
Отправлено: 16:56, 31-08-2010 | #13 |
Ветеран Сообщения: 904
|
Профиль | Отправить PM | Цитировать amel27,
немного запутался. У Вас: Цитата amel27:
Заранее благодарен Цитата amel27:
amel27, в принципе я, наконец понял. Вы имели ввиду, что если $sLog1_1=4, то выбирается ok.ico, иначе error.ico. Правильно? код: А как, все-таки, надо было написать в случае многомерного (мой неправильный вариант)? |
||
------- Последний раз редактировалось saavaage, 31-08-2010 в 17:32. Отправлено: 17:00, 31-08-2010 | #14 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:23, 31-08-2010 | #15 |
Ветеран Сообщения: 904
|
Профиль | Отправить PM | Цитировать amel27, у меня вроде нормально отработал и такой вариант
Нет, поспешил отчитаться.... Ваша правда. Спасибо Большое. Задача сокращения- оптимизации решена, благодаря Вам. PS а как, все-таки, надо было написать в случае многомерного массива (мой неправильный вариант) |
------- Последний раз редактировалось saavaage, 01-09-2010 в 17:00. Отправлено: 17:33, 31-08-2010 | #16 |
Ветеран Сообщения: 904
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:04, 31-08-2010 | #17 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата saavaage:
Цитата saavaage:
Dim $aState1[3][5]=[ _ ['error.ico','error.ico','ok.ico' ,'error.ico','error.ico'], _ ['error.ico','error.ico','error.ico','error.ico','ok.ico' ], _ ['error.ico','error.ico','ok.ico' ,'ok.ico' ,'error.ico']] $pic1_2=$aState1[0][$sLog1_2] $pic3_2=$aState1[0][$sLog3_2] $pic1_1=$aState1[1][$sLog1_1] $pic3_1=$aState1[1][$sLog3_1] $pic2_2=$aState1[2][$sLog2_2] _ImageGet() |
||
Отправлено: 18:15, 31-08-2010 | #18 |
Ветеран Сообщения: 904
|
Профиль | Отправить PM | Цитировать amel27, рано я радовался.
Неожиданно возникла проблема при добавлении вкладки "Devices" (в коде выделил жирным). При нажатии на кнопки "Обновить", "Старт" и "Откат" происходит "прорисовка" иконок на этой вкладке. Промучился весь день и никак не смог это разрешить. Понятно, что это происходит потому, что у меня в эти функции ( _HotFixes_Update(), _StartOptim() и _RestoreOld() ) вставлен запуск _ServicesStat() для обновления информации о службах и, соответственно, иконках. Если его (запуск) закомментировать, то все нормально, но тогда нет обновления иконок после этих операций (обновить, старт и откат). Вот код: Буду признателен за любую подсказку... PS на всякий случай, прикрепил архив с иконками и Icons.au3 (без них скрипт не сработает!) |
------- Последний раз редактировалось saavaage, 02-09-2010 в 14:16. Отправлено: 00:05, 02-09-2010 | #19 |
Ветеран Сообщения: 904
|
Профиль | Отправить PM | Цитировать Решение предложено Yashied на русском форуме http://autoit-script.ru/index.php/to....html#msg18794
Вот адаптированный под мой скрипт код: Т.о. тема решена. Еще раз спасибо за помощь amel27 и Yashied. |
------- Отправлено: 12:26, 04-09-2010 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Установка - оптимизация | alik777 | Microsoft Windows 2000/XP | 1 | 24-07-2010 22:58 | |
[решено] Оптимизация JS скрипта | System Failure | Вебмастеру | 2 | 12-10-2009 21:29 | |
Службы - Оптимизация | Malfatto | Microsoft Windows Vista | 2 | 06-09-2008 15:08 | |
Оптимизация файлов | Slim-UB | Автоматическая установка Windows 2000/XP/2003 | 7 | 13-06-2006 15:33 | |
Оптимизация | pashka-88 | Хочу все знать | 2 | 30-10-2005 20:49 |
|