AZJIO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору sproxy Время создания скрипта сильно увеличилось, не менее минуты ждать приходится. Судя по результатам скрипта и времени обработки скрипт проверяет наличие существования значения переменной. Такая запись не совсем удобна для правки скрипта. Если мне понадобится удалять/добавлять пару ярлыков в скрипт или изменить значение, то придётся бегать по скрипту вверх вниз выискивая переменные. Если подправить предыдущий скрипт без переменных, то я без проблем добавлю её средствами блокнота как я выше отписывал, и скрипт получается компактнее 470 кб против 500 кб. Хотя на сжатом диске или в архиве размер почти одинаковый. А если добавить удобочитаемость, то идеальный вариант такая запись: Цитата: $sVar28 = 'c:\Documents and Settings\имя пользователя\Главное меню\Программы\Автозагрузка' $sVar29 = 'c:\Documents and Settings\имя пользователя\Главное меню\Программы\Автозагрузка\Сократ Персональный 4.1.lnk' $sVar33 = 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1\spv.exe' $sVar34 = 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1' If NOT FileExists($sVar28) Then DirCreate($sVar28) FileCreateShortcut($sVar33,$sVar29,$sVar34, '', '') | то есть каждому ярлыку предшествует четыре его переменные. Если добавить удобочитаемость переменных, то так: Цитата: $sPath28 = 'c:\Documents and Settings\имя пользователя\Главное меню\Программы\Автозагрузка' $sLnk28 = 'c:\Documents and Settings\имя пользователя\Главное меню\Программы\Автозагрузка\Сократ Персональный 4.1.lnk' $sExe28 = 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1\spv.exe' $sWork28 = 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1' If NOT FileExists($sPath28) Then DirCreate($sPath28) FileCreateShortcut($sExe28,$sLnk28,$sWork28, '', '') | если это получится, то всё равно мне придётся сделать замену пременных так: Цитата: $genPath='c:\Documents and Settings\имя пользователя\Главное меню\Программы' ; корневая директория ярлыков $sPath28 = $genPath&'\Автозагрузка' $sLnk28 = $genPath&'\Автозагрузка\Сократ Персональный 4.1.lnk' $sExe28 = 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1\spv.exe' $sWork28 = 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1' | Ну а 'C:\Program Files' как было видно из моих ярлыков это %SYS%?, тут с виндой разбираться не нужно, переменная добавлена в "переменные среды" и сменить её можно командой "setenv -m sys C:\Program Files" без перезагрузки. Глядя на последнюю запись появляется идея гуи-программки, которая может добавить ярлык в скрипт или сразу сгенерировать ярлык, иногда для LiveCD трудно создать ярлык для программки, нужно создать предварительно пути в LiveCD (X:\ и B:\). Ищё интересный вопрос, давно хотел понять как применяется функция на понятном примере, то что в справке там передача математических значений и их логическая обработка, в другом месте сказано что функция просто вставляет часть часто-повторяемого кода в указанный участок кода. Цитата: If NOT FileExists($sPath28) Then DirCreate($sPath28) FileCreateShortcut($sExe28,$sLnk28,$sWork28, '', '') | здесь первая строка часто повторяемая, нельзя ли для неё сделать запись типа: Цитата: $myFunc = link($sPath28) FileCreateShortcut($sExe28,$sLnk28,$sWork28, '', '') Func link($sPath28) If NOT FileExists($sPath28) Then DirCreate($sPath28) EndFunc | не могу понять синтаксис использования этой функции. | Всего записей: 4416 | Зарегистр. 03-05-2006 | Отправлено: 19:30 25-06-2009 | Исправлено: AZJIO, 19:55 25-06-2009 |
|