Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

Аватара для Pozia

Ветеран


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

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


Мне необходимо выполнить команду:
Код: Выделить весь код
renuser.exe Администратор User
Где User - введенное интерактивно имя пользователя.
Если имя пользователя не введено в течении минуты, то "Ок" нужно нажать автоматически и вместо User подставить заранее определенное в скрипте имя.
Как это реализовать на автоит?
Спасибо за помощь.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:51, 09-07-2012

 

Ветеран


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

Профиль | Отправить 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



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

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


Аватара для Pozia

Ветеран


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

Профиль | Отправить 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
в котором идет отсчет на кнопке Ok. Сижу скрещиваю ваш и мой скрипты и никак не получается реализовать
Цитата Pozia:
Если имя пользователя не введено в течении минуты, то "Ок" нужно нажать автоматически »
Помогите пожалуйста

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 23:33, 10-07-2012 | #3


Ветеран


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

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


И не получится.

Не вижу в Вашем коде поля «Edit» для ввода имени.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:04, 11-07-2012 | #4


Аватара для Pozia

Ветеран


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

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


Iska, так и вашем коде я команды «Edit» не вижу. Просто я профан в скриптописании - пишу скрещивая методом тыка имеющиеся коды. Не получается. Сыплются ошибки в данном случае. Можно ли более обширную помощь?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:16, 11-07-2012 | #5


Аватара для ferget

Разный


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

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


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

Отправлено: 19:43, 11-07-2012 | #6


Ветеран


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

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


Pozia, в моём коде оно и не требовалось — я не использовал создание своего диалога. А Вы используете. Потому:
Цитата ferget:
команда GUICtrlCreateInput или GUICtrlCreateEdit »
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:43, 11-07-2012 | #7


Аватара для Pozia

Ветеран


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

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


Iska, сообразил. я сразу не понял что у вас таймер есть но он не отображается. Просто хотелось бы его как то наблюдать, если это возможно.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 23:10, 11-07-2012 | #8


Ветеран


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

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


Добавьте в свой диалог поле «Edit», установите его начальное значение потребному имени. По выходу из диалога проверяйте, как был закрыт диалог — по таймеру, по «OK», по «Cancel» (это у Вас уже есть, но там Вы просто делаете «Exit()»). Затем проверяйте содержимое поля «Edit» и выполняйте потребные действия.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:51, 11-07-2012 | #9


Аватара для Pozia

Ветеран


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

Профиль | Отправить 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
Но почему то вместо нужного имени учетка переименовывается в цифру 4

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 20:50, 12-07-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Команда Выполнить Кощей Хочу все знать 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




 
Переход