Что нового

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

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---

Скриптер
Сообщения
443
Репутация
116
А я понял как-то так:
Код:
$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 575
Репутация
335
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 575
Репутация
335
Honor
Вы задумывались что означает символ & перед словом, и почему в Send используется именно та самая буква которая написана после этого символа? Так вот. Это символ быстрого доступа с клавиатуры, вызывается она через ALT после нажатия буквы подчеркиваются (замечали?). Но этот способ не надежен, так как зависит от текущей раскладки клавиатуры.
Возможно не верно указан относительный путь к устанавливаемой программе?!
Это значит что он не может найти то окно, которое Вы ему указали, и он все еще ждет, и надеется что оно появится. Скорее всего Вы неверно указали название окна. Воспользуйтесь утилитой AutoIT Window Info уже в конце то концов
Подскажите список с подробным описанием всех операторов и функций AutoIT?
Справка!
 
Автор
H

Honor

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

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

Medic84

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

Honor

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

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
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---

Скриптер
Сообщения
443
Репутация
116
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---

Скриптер
Сообщения
443
Репутация
116
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\'

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