Что нового

[Файловая система] Автоустановка программ на ПК

Honor

Новичок
Сообщения
13
Репутация
0
Добрый день! Поискал на форуме "автоустановка", поиск ничего не выдал, подскажите, лучше с примерами, есть большая необходимость автоматизировать установку софта на ПК. Софт стандартный: браузеры, офисные пакеты, архиваторы, мультимедиа... Если нужно-то укажу полный список программ. Просьба поделиться, у кого есть примеры установки такого рода программ. Заранее благодарен.
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Подскажите, как в скрипте указать относительный путь к программе на диске? Это нужно, например когда программа установщик запускается с флешки!
 

eropov

Jury
Сообщения
195
Репутация
25
Подскажите, как в скрипте указать относительный путь к программе на диске? Это нужно, например когда программа установщик запускается с флешки!

Если вы имеете в виду путь, где находится программа - скрипт, то есть макро функция
Код:
@ScriptDir
, которая возвращает путь до скрипта, в виде строки, если вам нужно по этому пути запустить скрипт, то как то так
Код:
@ScriptDir & "\MyProg.exe"
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Спасибо, я не расписал подробно, мне нужно добиться следующего: сами скрипты автозапуска программ лежат например в: CD-ROM:\Scripst\, (CD-ROM (по сути флешка)-буква может быть любой), программы находятся в другой папке, например: CD-ROM:\SOFT\... какой в этом случае будет код? Заранее благодарен.
 

eropov

Jury
Сообщения
195
Репутация
25
Скачай FAQ по AutoIT(есть на форуме)
Есть макро функция
Код:
@HomeDrive

Буква диска

Из выше написанного понял:
Код:
@HomeDrive & "\SOFT\Ваша_прога.exe"
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
А я понял как-то так:
Код:
$Path = StringLeft(@ScriptDir, 3) & 'SOFT\'
MsgBox(0, "CD-ROM:\SOFT\", $Path)


PS: в зависимости где лежит скрипт (с какого диска запустил) - такой и будет путь:
* если на диске С будет - получить "C:\SOFT\"
* если на диске D будет - получить "D:\SOFT\"
* если на СD/DVD-ROM будет - получить "?:\SOFT\" - где ? присвоенная буква диска.


Добавлено:
Сообщение автоматически объединено:

Honor [?]
Просьба поделиться, у кого есть примеры установки такого рода программ.
В справке F1 есть пример установки "WinZip": клик
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Как подскажите пож-та можно автоматически нажать на конпки OK, Cancel, No (Нет). Пробовал так Send("OK") не нажимает!
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Honor
Вы хоть примеры то смотрели? Похоже что нет...
Код:
ControlClick('Установка — Download Master' , "", "[CLASS:TNewCheckListBox; INSTANCE:1]", "left", 1, 26, 9)

Нажатие на кнопку. Все параметры берутся из Au3Info. В спраке примеры есть в конце концов... Которые Вы видимо тоже не читали.
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Спасибо, читал примеры с DM, Notepad и WinZIP, начал по ним писать свой скрипт, начало есть, но хотелось бы еще больше, не совсем понял как берется инфа из Au3Info, а именно из каких вкладок Au3Info что брать?!

Код:
WinWaitActive("WinZip Setup", "&Express setup (recommended)")
Send("!e")
Send("!n")


Также в примере с Блокнотом: http://autoit-script.ru/autoit3_docs/tutorials/notepad/notepad.htm
на картинке в программе Au3Info мы видим кнопки на русском, одна из них "Со&хранить", а в примере мы пишем: Send("!n")

Код:
WinWaitActive("Notepad", "Save") 
Send("!n")


я понимаю что это буквы для быстрого вызова кнопки, как быть с русским и английским написанием клавиш, как узнать, какой брать написание и откуда взялась буква "n"?!

Тоже не идет, ничего не происходит, RunScript просто висит в системном трее... Возможно не верно указан относительный путь к устанавливаемой программе?!
Код:
$Path = StringLeft(@ScriptDir, 3) & 'SOFT\7Zip\'
Run($Path, "7z_920_x86_x64.exe")
WinWaitActive("Установка 7-Zip [x86] RePack AIO")
Send("OK")


Подскажите список с подробным описанием всех операторов и функций AutoIT?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Honor
Вы задумывались что означает символ & перед словом, и почему в Send используется именно та самая буква которая написана после этого символа? Так вот. Это символ быстрого доступа с клавиатуры, вызывается она через ALT после нажатия буквы подчеркиваются (замечали?). Но этот способ не надежен, так как зависит от текущей раскладки клавиатуры.
Возможно не верно указан относительный путь к устанавливаемой программе?!
Это значит что он не может найти то окно, которое Вы ему указали, и он все еще ждет, и надеется что оно появится. Скорее всего Вы неверно указали название окна. Воспользуйтесь утилитой AutoIT Window Info уже в конце то концов
Подскажите список с подробным описанием всех операторов и функций AutoIT?
Справка!
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Да, спасибо, в общем то я так и писал про назначение &: "я понимаю что это буквы для быстрого вызова кнопки..." вопрос был в другом, команда на кнопке написана по-русски, и в примере стоит латинская буква.

И не подскажете с относительным путем в к папке с программой?! Он так и не заработал?!
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Да я это тоже понял и прочитал, но во-первых, просто хочется понять этот скриптовый язык, и во-вторых, если один способ не хорошо, предложите пож-та другой, более надежный, я еще "пью молоко" в этих скриптах образно говоря, поэтому я на формуе, как раз за этим здесь чтобы научиться. Заранее благодарен.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Honor
Я уже предложил дважды, Вы просто не хотите читать.
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Спасибо, прочитал про "ControlClick", почему тогда в примерах указывают метод Send? А про относительный путь, я тоже наверное просморел?!
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Подскажите пож-та, в данном коде как мне запустить программу используя относительный путь?! В отладке выдает несуществующий путь: "D:\SOFT\7Zip\". А то не совсем понятно как это все работает?!

Код:
$Path = StringLeft(@ScriptDir, 3) & 'SOFT\7Zip\'
MsgBox(0, "CD-ROM:\SOFT\", $Path)
Run($Path, "7z_920_x86_x64.exe")
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Run ( "program" [, "workingdir" [, show_flag [, opt_flag]]] )
Параметры: program - Полный путь к программе (EXE, BAT, COM, или PIF) для запуска (см. примечания).

; Запускает блокнот развёрнутым на весь экран
Run(@WindowsDir & "\notepad.exe", "", @SW_MAXIMIZE)
Как видно из справки:
Параметр "program" здесь равен:
@WindowsDir & "\notepad.exe"

Смотрим на Ваш скрипт:
Код:
$Path = StringLeft(@ScriptDir, 3) & 'SOFT\7Zip\'
MsgBox(0, "CD-ROM:\SOFT\", $Path)
Run($Path, "7z_920_x86_x64.exe")

Параметр "program" здесь равен:
$Path - путь до программы, но без запуска самой программы. Т.е. не указан сам файл, а только папки
Параметр "workingdir" здесь равен:
"7z_920_x86_x64.exe" - это видимо название файла + его расширение
Возможно ошибка или опечатка у Вас в скрипте - попробуйте Ваш параметр "workingdir" записать в параметр "program" так же с путем до файла ($Path). И при этом параметр "workingdir" оставить пустым.

ЗЫ: более популярно:
Код:
@WindowsDir & "\notepad.exe"

Представте, что @WindowsDir - это Ваш $Path, а "notepad.exe" - это Ваш "7z_920_x86_x64.exe"
 
Автор
H

Honor

Новичок
Сообщения
13
Репутация
0
Если я правильно понял, то получается следующее выражение:
Код:
Run($Path & "\SOFT\7z_920_x86_x64.exe")


К сожалению не работает...
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
2 Honor
Понял правильно, но написал с ошибкой...

Здесь тебе должно наверное помочь такая штука:
Код:
ConsoleWrite($Path & "\SOFT\7z_920_x86_x64.exe")

Далее смотри какой путь получишь в консоли...у меня это
C:\SOFT\7Zip\\SOFT\7z_920_x86_x64.exe

Ну тут думай голова - думай - шапку куплю...

ЗЫ (то ли лыжи не едут, то ли все мне это снится):
@WindowsDir & "\notepad.exe"
Представте, что @WindowsDir - это Ваш $Path, а "notepad.exe" - это Ваш "7z_920_x86_x64.exe"
Код:
Run($Path & "\SOFT\7z_920_x86_x64.exe")


Давай еще раз прочитаем тонкий намек на то, что надо сделать:
0. открой чистый блонкот - запиши в него строку: @WindowsDir & "\notepad.exe"
1. Сделай замену:
1.1. "@WindowsDir" заменить на "$Path"
1.2. "notepad.exe" заменить на "7z_920_x86_x64.exe"

ЗЫЫ:
Код:
$Path = StringLeft(@ScriptDir, 3) & 'SOFT\7Zip\'

Т.к. в конце строки уже имеется '\', то в итоге путь к файлу мы получим '***\\****.***', что есть не правильно... ну тут думаю ты догадаешься убрать один из '\'
 
Верх