-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Str_ani_ck |
09-08-2009 20:48 1189602 |
Распаковка файлов
Мне нужно сделать так чтобы распаковался архив в C:\Tempload\ , но потом после распаковки запустился файл C:\Tempload\Bin\acadFeui\Setup.exe
Код:
Run ("C:\Tempload\Install.exe")
WinWait("Самораспаковывающийся архив WinRAR","&Папка назначения:")
ControlClick("Самораспаковывающийся архив WinRAR","&Папка назначения:","Button2")
Sleep (2000)
Run ("C:\Tempload\Bin\acadFeui\Setup.exe")
Но архив еще распаковался полностью , а эта команда уже нашла и запустила Setup.exe, соответсвенно никакой установки не получается.
Код:
Run ("C:\Tempload\Bin\acadFeui\Setup.exe")
Как можно этого избежать?
|
Вместо слипа нужно использовать это:
Код:
WinWaitClose("Самораспаковывающийся архив WinRAR")
Да, все верно.
Вот код автоматический) :
Код:
$exe = "drive.exe" ;exe шник от винраровского архива
$pass = "drive" ; пароль
$usepass = 1 ; использовать ли пароль
$dir = "\dir" ; Папка
Run($exe)
WinWaitActive("Самораспаковывающийся архив WinRAR","",60)
ControlSetText("Самораспаковывающийся архив WinRAR","","[CLASS:Edit; INSTANCE:1]",$dir)
ControlClick("Самораспаковывающийся архив WinRAR","","[CLASS:Button; INSTANCE:2]")
If $usepass = 1 Then
WinWaitActive("Ввод пароля","",60)
ControlSetText("Ввод пароля","","[CLASS:Edit; INSTANCE:1]",$pass)
ControlClick("Ввод пароля","","[CLASS:Button; INSTANCE:1]")
EndIf
WinWaitClose("Самораспаковывающийся архив WinRAR")
Run("notepad.exe")
А дальше все сами
|
Str_ani_ck |
10-08-2009 00:36 1189754 |
Спасибо действительно работает, я уже программ пять переделал под автоматическую установку. Все это так интересно.
Код:
$exe = "drive.exe" ;exe шник от винраровского архива
$pass = "drive" ; пароль
$usepass = 1 ; использовать ли пароль
$dir = "\dir" ; Папка
Run($exe)
WinWaitActive("Самораспаковывающийся архив WinRAR","",60)
ControlSetText("Самораспаковывающийся архив WinRAR","","[CLASS:Edit; INSTANCE:1]",$dir)
ControlClick("Самораспаковывающийся архив WinRAR","","[CLASS:Button; INSTANCE:2]")
If $usepass = 1 Then
WinWaitActive("Ввод пароля","",60)
ControlSetText("Ввод пароля","","[CLASS:Edit; INSTANCE:1]",$pass)
ControlClick("Ввод пароля","","[CLASS:Button; INSTANCE:1]")
EndIf
WinWaitClose("Самораспаковывающийся архив WinRAR")
Run("notepad.exe")
|
Непойму никак зачем нажимать AutoIT`ом на кнопки интерфейса WinRar`а если есть консольный WinRar ... (все параметры указываем через командною строку)
|
Str_ani_ck, FlatX007, а я ваще не врублюсь, если можно использовать SFX архивы_запустил архив с ключем пароля, и все дела,вообще никаких кнопок жать не надо :).
|
Прочиатай ещё раз внимательно мой пост выше ... я тоже самое написал
|
Кхм, а если через ком-строку то так:
Код:
$exe = "drive.exe" ;exe шник от винраровского архива
$pass = "drive" ; пароль
$usepass = 1 ; использовать ли пароль
$dir = "D:\AutoIt\AutoKey\dir" ; Папка
If $usepass=1 Then
Run($exe & " -d" & $dir & " -p" & $pass & " -s2")
Else
Run($exe & " -d" & $dir & " -s2")
EndIf
WinWaitClose("Самораспаковывающийся архив WinRAR")
Run("notepad.exe")
Вот так
|
Цитата:
Цитата FlatX007
Непойму никак зачем нажимать AutoIT`ом на кнопки интерфейса WinRar`а если есть консольный WinRar ... (все параметры указываем через командною строку) »
|
Ну учится человек! Это его практика :) Я вот тоже ерундой занимался когда то :)
|
Время: 16:17.
© OSzone.net 2001-