Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Распаковка файлов (http://forum.oszone.net/showthread.php?t=147523)

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")
Как можно этого избежать?

Nik_rus 09-08-2009 21:08 1189614

Вместо слипа нужно использовать это:
Код:

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


FlatX007 10-08-2009 06:56 1189841

Непойму никак зачем нажимать AutoIT`ом на кнопки интерфейса WinRar`а если есть консольный WinRar ... (все параметры указываем через командною строку)

crashtuak 10-08-2009 07:49 1189865

Str_ani_ck, FlatX007, а я ваще не врублюсь, если можно использовать SFX архивы_запустил архив с ключем пароля, и все дела,вообще никаких кнопок жать не надо :).

FlatX007 10-08-2009 10:42 1189940

Прочиатай ещё раз внимательно мой пост выше ... я тоже самое написал

Nik_rus 10-08-2009 13:10 1190057

Кхм, а если через ком-строку то так:
Код:

$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")

Вот так

Medic84 10-08-2009 13:23 1190065

Цитата:

Цитата FlatX007
Непойму никак зачем нажимать AutoIT`ом на кнопки интерфейса WinRar`а если есть консольный WinRar ... (все параметры указываем через командною строку) »

Ну учится человек! Это его практика :) Я вот тоже ерундой занимался когда то :)


Время: 16:17.

Время: 16:17.
© OSzone.net 2001-