|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как выполнить комманду введенную интерактивно? |
|
|
[решено] Как выполнить комманду введенную интерактивно?
|
Ветеран Сообщения: 2756 |
Мне необходимо выполнить команду:
Где User - введенное интерактивно имя пользователя. Если имя пользователя не введено в течении минуты, то "Ок" нужно нажать автоматически и вместо User подставить заранее определенное в скрипте имя. Как это реализовать на автоит? Спасибо за помощь. |
|
------- Отправлено: 19:51, 09-07-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Например, так:
AutoItSetOption("MustDeclareVars", 1) Local $sUserName = "SomeUser" Local $sNewUserName $sNewUserName = InputBox("Title", "Prompt", $sUserName, "", Default, Default, Default, Default, 60) Switch @error Case 0 ; Success input RunWait("renuser.exe Администратор " & $sNewUserName) Case 1 ; Cancel input ConsoleWrite("User cancelled input" & @CRLF) Case 2 ; Input timeout RunWait("renuser.exe Администратор " & $sUserName) Case Else ; Other errors ConsoleWrite("Other errors" & @CRLF) EndSwitch Exit(0) |
Последний раз редактировалось Iska, 10-07-2012 в 14:47. Причина: Исправил таймаут с 5 секунд на 1 минуту, как и было запрошено Отправлено: 01:13, 10-07-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Iska, спасибо. Вот у меня еще есть такой скрипт:
#include <GUIConstants.au3> Global $iTime_Expired = 0, $iTime_Counter = 600 Global $iWidth = 292, $iHeight = 80 $hGUI = GUICreate(".Net FrameWork 4.0 SP1", $iWidth, $iHeight) GUISetBkColor(0xBEBEBE) ;цвет окна GUICtrlCreateLabel("Хотите установить .Net FrameWork 4.0 SP1", 10, 10) $Yes_Button = GUICtrlCreateButton("Да", 10, 40, 130) $No_Button = GUICtrlCreateButton("Нет", 150, 40, 130) GUISetState(@SW_SHOW, $hGUI) _Set_YesButton_Timer_Proc() AdlibRegister("_Set_YesButton_Timer_Proc", 1000) While 1 $vMsg = GUIGetMsg() If $iTime_Expired Then $vMsg = $Yes_Button Switch $vMsg Case $No_Button, $GUI_EVENT_CLOSE Exit Case $Yes_Button AdlibUnRegister() ;Отключение функции отсчёта GUIDelete($hGUI) ;Удаление окна RunWait("NetFx40_Win7_SP1_x86_x64.exe -aiqlk -gm2") Exit EndSwitch WEnd Func _Set_YesButton_Timer_Proc() GUICtrlSetData($Yes_Button, "Да (" & $iTime_Counter & ")") $iTime_Counter -= 1 If $iTime_Counter < 0 Then AdlibUnRegister() $iTime_Expired = 1 EndIf EndFunc Цитата Pozia:
|
|
------- Отправлено: 23:33, 10-07-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать И не получится.
Не вижу в Вашем коде поля «Edit» для ввода имени. |
Отправлено: 02:04, 11-07-2012 | #4 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Iska, так и вашем коде я команды «Edit» не вижу. Просто я профан в скриптописании - пишу скрещивая методом тыка имеющиеся коды. Не получается. Сыплются ошибки в данном случае. Можно ли более обширную помощь?
|
|
------- Отправлено: 19:16, 11-07-2012 | #5 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать имеется ввиду команда GUICtrlCreateInput или GUICtrlCreateEdit
|
Отправлено: 19:43, 11-07-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Pozia, в моём коде оно и не требовалось — я не использовал создание своего диалога. А Вы используете. Потому:
Цитата ferget:
|
|
Отправлено: 22:43, 11-07-2012 | #7 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Iska, сообразил. я сразу не понял что у вас таймер есть но он не отображается. Просто хотелось бы его как то наблюдать, если это возможно.
|
------- Отправлено: 23:10, 11-07-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Добавьте в свой диалог поле «Edit», установите его начальное значение потребному имени. По выходу из диалога проверяйте, как был закрыт диалог — по таймеру, по «OK», по «Cancel» (это у Вас уже есть, но там Вы просто делаете «Exit()»). Затем проверяйте содержимое поля «Edit» и выполняйте потребные действия.
|
Отправлено: 23:51, 11-07-2012 | #9 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Iska, смог придумать так:
#include <GUIConstants.au3> Local $sUserName = "Pozia" Local $sNewUserName Global $iTime_Expired = 0, $iTime_Counter = 100 Global $iWidth = 292, $iHeight = 150 $hGUI = GUICreate("Seven x64", $iWidth, $iHeight) GUISetBkColor(0xBEBEBE) ;цвет окна GUICtrlCreateLabel("Введи желаемое имя учетной записи ""Администратор""", 10, 10) GUICtrlCreateLabel("", 10, 30) $sNewUserName = GUICtrlCreateInput ($sUserName, 10, 70 ,268 ,20) $Yes_Button = GUICtrlCreateButton("Ok", 10, 100, 130) $No_Button = GUICtrlCreateButton("Cancel", 150, 100, 130) GUISetState(@SW_SHOW, $hGUI) _Set_YesButton_Timer_Proc() AdlibRegister("_Set_YesButton_Timer_Proc", 1000) While 1 $vMsg = GUIGetMsg() If $iTime_Expired Then $vMsg = $Yes_Button Switch $vMsg Case $No_Button, $GUI_EVENT_CLOSE Exit Case $Yes_Button AdlibUnRegister() ;Отключение функции отсчёта GUIDelete($hGUI) ;Удаление окна RunWait("renuser.exe Администратор " & $sNewUserName) Exit EndSwitch WEnd Func _Set_YesButton_Timer_Proc() GUICtrlSetData($Yes_Button, "Ok (" & $iTime_Counter & ")") $iTime_Counter -= 1 If $iTime_Counter < 0 Then AdlibUnRegister() $iTime_Expired = 1 EndIf EndFunc |
------- Отправлено: 20:50, 12-07-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Команда Выполнить | Кощей | Хочу все знать | 42 | 21-04-2013 09:56 | |
Интерфейс - [решено] Во что переименовали комманду tree ? | timotv | Microsoft Windows 7 | 10 | 03-11-2010 19:02 | |
MSFT SQL Server - как выполнить подстановку? | St33l | Программирование и базы данных | 1 | 14-02-2010 15:42 | |
Служебные - Пуск-выполнить | Nigr | Наборы обновлений для Windows XP/2003/Windows 7 | 7 | 21-01-2009 20:28 | |
как Выполнить IPFW s из PHP | Kitaeca | Общий по FreeBSD | 5 | 24-04-2007 04:58 |
|