Автор Тема: [Автоматизация] Скрипт установки\настройки 7zip  (Прочитано 11861 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
AutoIt: 3.
Категория: Автоматизация

Описание: Пожалуйста посмотрите\оцените скрипт (не считая "привет мир" и т.д. - этот первый написанный мной), подскажите - возможно какие-либо строки можно заменить для улучшения работы?(лично меня смущают ожидания перед нажатием очередных кнопок и собственно сам способ вызова окна настроек)

Код/Пример:
(нажмите для показа/скрытия)



Вложение включает в себя последнюю версию скрипта(после всех исправлений предложенных в теме):


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Ноябрь 25, 2014, 10:26:52 от CrazyDoc »

Русское сообщество AutoIt

[Автоматизация] Скрипт установки\настройки 7zip
« Отправлен: Ноябрь 14, 2014, 11:18:01 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3256
  • Репутация: 854
    • Награды
  • Версия AutoIt: 3.3.14.0
CrazyDoc  [?]
Цитировать
какие-либо строки можно заменить
Функции Send() лучше заменить на ControlClick() или использовать режим "тихой" установки
Код: AutoIt [Выделить]
RunWait('\Soft_for_WS\7Zip\7z442.exe /S')


Цитировать
способ вызова окна настроек
Код: AutoIt [Выделить]
WinMenuSelectItem('7-Zip File Manager','Выделено объектов: 1', 'С&ервис', 'Настройки...')


Ну и ожидание 600 мс между кликами - явный перебор. Думаю, можно вообще без ожидания обойтись. Или уменьшить до 30.

Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75

  • Автор темы
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
вот что получилось:
(нажмите для показа/скрытия)
и еще вопросы по совету использовать RunWait: 1) ключ /S - для чего он? к сожалению не смог понять(и в описании функции не нашел) 2)RunWait('\Soft_for_WS\7Zip\7z442.exe) - запустит установку 7zip, но далее ничего ведь не произойдет - программа сама никуда не денется, а скрипт будет ее ждать... Пробовал заменить Run('\Soft_for_WS\7Zip\7z442.exe') на RunWait('\Soft_for_WS\7Zip\7z442.exe /S') но ничего не заработало.

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3256
  • Репутация: 854
    • Награды
  • Версия AutoIt: 3.3.14.0
CrazyDoc  [?]
Цитировать
ключ /S - для чего он?
Данный ключ используется установщиком 7zip для "тихой" установки: интерфейсные окна не выводятся, настройки используются по умолчанию.

Цитировать
но ничего не заработало
Оно заработало, просто вы ничего не увидели ;) Это и есть "тихая" установка.

Русское сообщество AutoIt


Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75

  • Автор темы
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Данный ключ используется установщиком 7zip для "тихой" установки: интерфейсные окна не выводятся, настройки используются по умолчанию.
С учетом этого поправил:
(нажмите для показа/скрытия)
данный ключ верен только для 7zip? и если да, то где можно посмотреть подобные ключи для других программ?
убрал все задержки - может ли это повлиять на выполнение если, к примеру, компьютер старый и будет подвисать?
Большое спасибо за советы!

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3256
  • Репутация: 854
    • Награды
  • Версия AutoIt: 3.3.14.0
CrazyDoc  [?]
Цитировать
ключ верен только для 7zip?
7zip - это программа-архиватор. Для его установки используется программа-установщик (инсталлятор). Установщики бывают разные, но большинство из них используют параметры командной строки для управления процессом установки. 7zip использует установщик NSIS.

Цитировать
где можно посмотреть подобные ключи
http://www.oszone.net/2766
http://checkdevice.narod.ru/index/cmdinst/0-27

Цитировать
может ли это повлиять на выполнение
Теоритически, конечно, может. Практически... компьютер должен ОЧЕНЬ сильно "подвисать".

И совершенно нет необходимости перед "ОК" нажимать "Применить". Эта строка лишняя:
Код: AutoIt [Выделить]
ControlClick('Настройки','При&менить','[CLASS:Button; INSTANCE:4]')


Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75

  • Автор темы
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
И совершенно нет необходимости перед "ОК" нажимать "Применить". Эта строка лишняя:
Код: AutoIt [Выделить]
ControlClick('Настройки','При&менить','[CLASS:Button; INSTANCE:4]')

действительно нет - проверил, запоминает и без нее=)
остался только один вопрос - возможна ли интеграция для систем хр и 7, 32 и 64. т.е. есть ли отличия между установками в этих системах и если да то подскажите пожалуйста в каком направлении искать эту информацию.

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3256
  • Репутация: 854
    • Награды
  • Версия AutoIt: 3.3.14.0
CrazyDoc  [?]
Цитировать
для систем хр и 7
На системах выше WinXP по умолчанию включён UAC (контроль учётных записей). В этом случае для установки потребуются права администратора. Проблема решается добавлением в начало скрипта
Код: AutoIt [Выделить]

Цитировать
32 и 64
Данный скрипт будет работать и на Win x64. Только установит он программу в "Program Files (x86)". Поэтому в функциях запуска и создания ярлыка лучше использовать макрос
Код: AutoIt [Выделить]

Русское сообщество AutoIt


Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75

  • Автор темы
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
исправленная версия:
(нажмите для показа/скрытия)

внесен запрос прав администратора при старте, путь к папке программы изменен(теперь с применением макроса), ярлык на рабочем столе создается для всех пользователей, удалена лишняя строка(нажатие кнопки 'применить')

Кажется все. Еще раз спасибо за помощь, отдельная благодарность за информативные ссылки=)

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3256
  • Репутация: 854
    • Награды
  • Версия AutoIt: 3.3.14.0
CrazyDoc  [?]
Цитировать
ярлык на рабочем столе создается для всех пользователей
На Win7 путь к общему рабочему столу "C:\Users\Public\Desktop". Используйте макрос
Код: AutoIt [Выделить]

Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75

  • Автор темы
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
исправлено:
(нажмите для показа/скрытия)

Оффлайн gora [?]

  • Осваивающий
  • **
  • Сообщений: 315
  • Репутация: 22
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.8.1
CrazyDoc
У Вас очень старая версия архиватора, в последних версиях установка ассоциаций происходит несколько иначе и скрипт нужно будет корректировать. Для установки х64 версии архиватора придется использовать msi установщик, ибо NSIS версии  х64 архиватора не существует. Там другие ключи тихой установки.

Оффлайн CrazyDoc [?]

  • Новичок
  • *
  • Сообщений: 75

  • Автор темы
  • Репутация: 2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
версию установщика для 32-х разрядных ОС заменил(изменены имя вызываемого инсталлятора и строка WinWaitActive(убрана строка содержащая текст, остался только заголовок окна)) -
(нажмите для показа/скрытия)

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

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3256
  • Репутация: 854
    • Награды
  • Версия AutoIt: 3.3.14.0
CrazyDoc  [?]
Цитировать
для разноразрядных систем
Код: AutoIt [Выделить]

Оффлайн damien2008 [?]

  • Осваивающий
  • **
  • Сообщений: 156
  • Репутация: 30
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.8.1
моя версия. может кому пригодится  :)

Код: AutoIt [Выделить]
#cs ------------------------------------------------------------------------
    Версия AutoIt:  3.3.14.1
    Автор:          myName
    Описание:       автоустановка 7z
#ce ------------------------------------------------------------------------


; Код программы

#NoTrayIcon
#include <Array.au3>
#include <File.au3>
#include <SendMessage.au3>
#include <WindowsConstants.au3>
#include <FileOperations.au3>

Opt('WinTitleMatchMode', 2)

Local $Disk = StringLeft(@WindowsDir, 3)

Switch @OSArch
    Case 'X86'
        ShellExecuteWait(@ScriptDir & '\7z920.exe', '/S', '', '', @SW_HIDE)
    Case 'X64'
        ShellExecuteWait('msiexec.exe', '/i 7z920-x64.msi /qn', '', '', @SW_HIDE)
EndSwitch

$FileList = _FO_FileSearch($Disk, '7zFM.exe', True, 125, 1, 1)

If IsArray($FileList) Then
    ShellExecute($FileList[1]);, '', '', '', @SW_HIDE)
    Local $7zWin = '[Class:FM]', $7zTxt = ''
    WinWait($7zWin, $7zTxt)
    WinActivate($7zWin, $7zTxt)
    WinMenuSelectItem($7zWin, $7zTxt, 'С&ервис', 'Настройки') ;до 6 вложений меню
    Sleep(250)
    ControlClick('Настройки', '', '[CLASS:Button; INSTANCE:1]')
    Sleep(250)
    ControlClick('Настройки', '', '[CLASS:Button; INSTANCE:2]')
    Sleep(250)
    WinClose($7zWin, $7zTxt)
EndIf

FileCreateShortcut($FileList[1], @DesktopDir & '\7z.lnk')
 


Русское сообщество AutoIt

Re: [Автоматизация] Скрипт установки\настройки 7zip
« Ответ #14 Отправлен: Август 29, 2015, 16:33:09 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
6369 Просмотров
Последний ответ Июль 02, 2011, 22:03:35
от CreatoR
1 Ответов
4338 Просмотров
Последний ответ Август 19, 2013, 19:57:03
от ivsatel
1 Ответов
1871 Просмотров
Последний ответ Апрель 27, 2014, 00:37:00
от joiner
4 Ответов
1523 Просмотров
Последний ответ Апрель 29, 2014, 12:02:47
от edware
0 Ответов
802 Просмотров
Последний ответ Ноябрь 14, 2014, 11:19:39
от madmasles
0 Ответов
922 Просмотров
Последний ответ Апрель 05, 2015, 15:27:42
от Egorkaru
3 Ответов
900 Просмотров
Последний ответ Август 05, 2015, 15:28:12
от DanSaratov
1 Ответов
542 Просмотров
Последний ответ Октябрь 26, 2015, 17:11:43
от Yashied
0 Ответов
529 Просмотров
Последний ответ Август 20, 2016, 02:35:27
от Tester12
5 Ответов
571 Просмотров
Последний ответ Март 04, 2017, 05:40:16
от reset86