Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как правильно записать скрипт

Ответить
Настройки темы
[решено] Как правильно записать скрипт

Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Код: Выделить весь код
Local $check[6], $prog[6]
$check[1] = GUICtrlCreateCheckbox("Прог1", 10, 30, 100, 15)
$check[2] = GUICtrlCreateCheckbox("Прог2", 10, 55, 100, 15)
$check[3] = GUICtrlCreateCheckbox("Прог3", 10, 80, 100, 15)
$check[4] = GUICtrlCreateCheckbox("Прог4", 10, 105, 100, 15)
$check[5] = GUICtrlCreateCheckbox("Прог5", 10, 130, 100, 15)

$prog[1] = "Setup.exe"
$prog[2] = "Seup2.exe"
$prog[3] = "Seup3.exe"
$prog[4] = "Seup4.exe"
$prog[5] = "Seup5.exe"

 For $i = 1 to 5
		If GUICtrlRead($check[$i]) = 1 Then
			RunWait($prog[$i])
		EndIf
Next
Смысл в том что при выборе проги1 должен запуститься именно Setup1 и т.д. Но в итоге он постоянно запускает только Setup1.

Отправлено: 21:12, 19-04-2010

 

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Centrinar,
А так попробуйте:
Код: Выделить весь код
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Dim $check[6], $prog[6]
$prog[1] = "Setup.exe"
$prog[2] = "Seup2.exe"
$prog[3] = "Seup3.exe"
$prog[4] = "Seup4.exe"
$prog[5] = "Seup5.exe"
$Form1 = GUICreate("", 100, 150, -1, -1)
$check[1] = GUICtrlCreateCheckbox("Прог1", 10, 10, 100, 15)
$check[2] = GUICtrlCreateCheckbox("Прог2", 10, 30, 100, 15)
$check[3] = GUICtrlCreateCheckbox("Прог3", 10, 50, 100, 15)
$check[4] = GUICtrlCreateCheckbox("Прог4", 10, 70, 100, 15)
$check[5] = GUICtrlCreateCheckbox("Прог5", 10, 90, 100, 15)
$Button1 = GUICtrlCreateButton("Button1", 10, 110, 80, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            For $i = 1 To 5
                If GUICtrlRead($check[$i]) = 1 Then
                    MsgBox(0, "", $prog[$i])
                EndIf
            Next
    EndSwitch
WEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:56, 19-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Если с
Код: Выделить весь код
MsgBox(0, "", $prog[$i])
то все работает как надо, но если поставить
Код: Выделить весь код
RunWait($prog[$i])
то он опять запускает только Прог1

Отправлено: 22:13, 19-04-2010 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Centrinar,
Может быть, это потому, что Вы используете RunWait и скрипт ждет, пока не отработает 1-ая программа. Я скомпилировал 5 скриптов вида MsgBox(0, "1", "1", 5) - ...- MsgBox(0, "5", "5", 5) и у меня все работает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:28, 19-04-2010 | #4


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


согласен, но как сделать с RunWait, нужно что бы он не запускал следующую программу пока не закончил с предыдущей

Отправлено: 22:44, 19-04-2010 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Centrinar,
Я же не знаю, что за программа Setup.exe, что она делает и сколько времени отрабатывает.
Цитата:
Я скомпилировал 5 скриптов
у меня с RunWait отрабатывает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:54, 19-04-2010 | #6


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Нашел свою тупую ошибку "Seup2.exe".Все работает СПС

Отправлено: 23:10, 19-04-2010 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Centrinar:
то он опять запускает только Прог1 »
Этот пример запустит всё что отмечено птичкой, по очерёдности.

Кстати я бы так сделал, в целях оптимизации:

Код: Выделить весь код
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

; Только эту строку и нужно править для добавления новых, или удаления пунктов ;)
Global $sProgs = 'Setup.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5'

Global Const $aProgs = StringSplit($sProgs, '|')
Global $anCheckBoxes[$aProgs[0]+1]

$Form1 = GUICreate("", 100, 150, -1, -1)

$iTop = 10

For $i = 1 To $aProgs[0]
    $anCheckBoxes[$i] = GUICtrlCreateCheckbox(StringRegExpReplace($aProgs[$i], '^.*=', ''), 10, $iTop, 100, 15)
    $iTop += 20
Next

$Button1 = GUICtrlCreateButton("Button1", 10, 110, 80, 25)

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            For $i = 1 To $aProgs[0]
                If GUICtrlRead($anCheckBoxes[$i]) = 1 Then
                    $sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
                    $sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')

                    MsgBox(64, $sProgName, $sProgExe)
                EndIf
            Next
    EndSwitch
WEnd

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:36, 19-04-2010 | #8


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Creat0R СПАСИБО!

Отправлено: 00:13, 20-04-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как правильно записать скрипт

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - [решено] Как правильно записать установочный диск с Windows 7 с ISO-образа Dima60576 Microsoft Windows 7 14 04-01-2015 15:38
DVD (VOB-MPEG2) Как и чем правильно записать на хард? Vasil Видео и аудио: обработка и кодирование 22 11-08-2009 22:42
Как правильно уписать скрипт резервного копирования madmax24 Microsoft Windows NT/2000/2003 2 14-01-2009 12:31
[решено] скачал как бы образ фильма в папках,не знаю,как правильно записать illusionmgs Видео и аудио: обработка и кодирование 9 12-09-2008 01:13
Как правильно написать скрипт mailing-list vadimiron Вебмастеру 7 14-01-2004 20:07




 
Переход