Показать полную графическую версию : [решено] Как выполнить комманду введенную интерактивно?
Мне необходимо выполнить команду:
renuser.exe Администратор User
Где User - введенное интерактивно имя пользователя.
Если имя пользователя не введено в течении минуты, то "Ок" нужно нажать автоматически и вместо User подставить заранее определенное в скрипте имя.
Как это реализовать на автоит?
Спасибо за помощь.
Например, так:
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, спасибо. Вот у меня еще есть такой скрипт:
#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. Сижу скрещиваю ваш и мой скрипты и никак не получается реализоватьЕсли имя пользователя не введено в течении минуты, то "Ок" нужно нажать автоматически »
Помогите пожалуйста
И не получится.
Не вижу в Вашем коде поля «Edit» для ввода имени.
Iska, так и вашем коде я команды «Edit» не вижу. Просто я профан в скриптописании - пишу скрещивая методом тыка имеющиеся коды. Не получается. Сыплются ошибки в данном случае. Можно ли более обширную помощь?
имеется ввиду команда GUICtrlCreateInput или GUICtrlCreateEdit
Pozia, в моём коде оно и не требовалось — я не использовал создание своего диалога. А Вы используете. Потому:
команда GUICtrlCreateInput или GUICtrlCreateEdit »
Iska, сообразил. я сразу не понял что у вас таймер есть но он не отображается. Просто хотелось бы его как то наблюдать, если это возможно.
Добавьте в свой диалог (http://forum.oszone.net/post-1949645.html#post1949645) поле «Edit» (http://forum.oszone.net/post-1950188.html#post1950188), установите его начальное значение потребному имени. По выходу из диалога проверяйте, как был закрыт диалог — по таймеру, по «OK», по «Cancel» (это у Вас уже есть, но там Вы просто делаете «Exit()»). Затем проверяйте содержимое поля «Edit» и выполняйте потребные действия.
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
madmasles
12-07-2012, 22:33
учетка переименовывается в цифру 4 »Поменяйте;...
RunWait("renuser.exe Администратор " & $sNewUserName)
;на
RunWait("renuser.exe Администратор " & GUICtrlRead($sNewUserName))
;...
madmasles, а сейчас имя учетки становится - 0
madmasles
13-07-2012, 00:54
а сейчас имя учетки становится - 0 »У Вас сначала удаление окна, а потом чтение, а читать уже нечего. Не обратил внимание на это. :sorry:
#include <GUIConstantsEx.au3>
$sUserName = 'Pozia'
$sNewUserName = ''
$hGUI = GUICreate('Seven x64', 292, 150)
GUICtrlCreateLabel('Введи желаемое имя учетной записи ''Администратор''', 10, 10)
$nNewUserName = GUICtrlCreateInput($sUserName, 10, 70, 268, 20)
$nYes_Button = GUICtrlCreateButton('Ok', 10, 100, 130)
$nNo_Button = GUICtrlCreateButton('Cancel', 150, 100, 130)
GUISetState()
While 1
Switch GUIGetMsg()
Case $nNo_Button, $GUI_EVENT_CLOSE
Exit
Case $nYes_Button
$sNewUserName = GUICtrlRead($nNewUserName)
ConsoleWrite($sNewUserName & @LF)
If Not $sNewUserName Then Exit
;RunWait('renuser.exe Администратор "' & $sNewUserName & '"')
Exit
EndSwitch
WEnd
madmasles, ваш работает. а вто с таймером никак не получается. Помогите, что я намутил не так?
#include <GUIConstantsEx.au3>
$sUserName = 'Pozia'
$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)
$nNewUserName = GUICtrlCreateInput ($sUserName, 10, 70, 268, 20)
$nYes_Button = GUICtrlCreateButton('Ok', 10, 100, 130)
$nNo_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 = $nYes_Button
Switch $vMsg
Case $nNo_Button, $GUI_EVENT_CLOSE
Exit
Case $nYes_Button
AdlibUnRegister() ;Отключение функции отсчёта
GUIDelete($hGUI) ;Удаление окна
$sNewUserName = GUICtrlRead($nNewUserName)
ConsoleWrite($sNewUserName & @LF)
If Not $sNewUserName Then Exit
RunWait('renuser.exe Pozia "' & $sNewUserName & '"')
Exit
EndSwitch
WEnd
Func _Set_YesButton_Timer_Proc()
GUICtrlSetData($nYes_Button, 'Ok (' & $iTime_Counter & ')')
$iTime_Counter -= 1
If $iTime_Counter < 0 Then
AdlibUnRegister()
$iTime_Expired = 1
EndIf
EndFunc
exit
ребята помогите пожалуйста, не получается последний штрих
#include <GUIConstantsEx.au3>
$sUserName = 'Pozia'
$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)
$nNewUserName = GUICtrlCreateInput ($sUserName, 10, 70, 268, 20)
$nYes_Button = GUICtrlCreateButton('Ok', 10, 100, 130)
$nNo_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 = $nYes_Button
Switch $vMsg
Case $nNo_Button, $GUI_EVENT_CLOSE
Exit
Case $nYes_Button
AdlibUnRegister() ;Отключение функции отсчёта
$sNewUserName = GUICtrlRead($nNewUserName)
GUIDelete($hGUI) ;Удаление окна
ConsoleWrite($sNewUserName & @LF)
If Not $sNewUserName Then Exit
RunWait('renuser.exe Pozia "' & $sNewUserName & '"')
Exit
EndSwitch
WEnd
Func _Set_YesButton_Timer_Proc()
GUICtrlSetData($nYes_Button, 'Ok (' & $iTime_Counter & ')')
$iTime_Counter -= 1
If $iTime_Counter < 0 Then
AdlibUnRegister()
$iTime_Expired = 1
EndIf
EndFunc
exit
большое спасибо всем откликнувшимся
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC