Показать полную графическую версию : Скрипт для выполнения команд после подтверждения
Нужен скрипт который после запуска покажет окно с вопросом - Вы хотите установить ....? И две кнопки "Да" "Нет". При нажатии Да выполнялись такие команды:
IF EXIST "%systemroot%\system32\PS.ini" goto Ok
exit
:Ok
start /wait WSidebar.exe /VERYSILENT
RD /S /Q "%ProgramFiles%\Windows Sidebar\Gadgets"
xcopy settings.ini "%UserProfile%\Local Settings\Application Data\Microsoft\Windows Sidebar\" /S /H /Y
xcopy Gadgets "%ProgramFiles%\Windows Sidebar\Gadgets\" /S /H /Y
start /wait WLMAIL.exe
start /wait REGEDIT /S WLMAIL.reg
exit
Если нажать Нет то просто скрипт завершит свою работу. И желательно чтобы имелось возможность настройки появляющегося окна (размеры его, положение кнопок). Заранее спасибо.
morgan1991
31-03-2009, 23:16
#include<guiconstants.au3>
$width = 300
$height = 100
$main = GUICreate("title", $width, $height)
GUISetBkColor(0xBEBEBE) ;цвет окна
GUICtrlCreateLabel("Установить?", 10, 20)
$button_yes = GUICtrlCreateButton("Да", 10, 50)
$button_no = GUICtrlCreateButton("Нет", 50, 50)
GuiSetState(@SW_SHOW, $main)
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = $button_no Or $msg = $GUI_EVENT_CLOSE Then Exit
If $msg = $button_yes Then
MsgBox(0, "", "запустился ваш код!")
#cs
IF EXIST "%systemroot%\system32\PS.ini" goto Ok
exit
:Ok
start /wait WSidebar.exe /VERYSILENT
RD /S /Q "%ProgramFiles%\Windows Sidebar\Gadgets"
xcopy settings.ini "%UserProfile%\Local Settings\Application Data\Microsoft\Windows Sidebar\" /S /H /Y
xcopy Gadgets "%ProgramFiles%\Windows Sidebar\Gadgets\" /S /H /Y
start /wait WLMAIL.exe
start /wait REGEDIT /S WLMAIL.reg
exit
#ce
EndIf
WEnd
Как выполнить ваш код на автоите я не знаю
Как выполнить ваш код на автоите я не знаю »
Вот так примерно:
If $msg = $button_yes Then
MsgBox(0, "", "запустился ваш код!")
If Not FileExists(@SystemDir & "\PS.ini") Then Exit
RunWait("WSidebar.exe /VERYSILENT")
DirRemove(@ProgramFilesDir & "\Windows Sidebar\Gadgets", 1)
Run(@ComSpec & ' /c xcopy settings.ini "%UserProfile%\Local Settings\Application Data\Microsoft\Windows Sidebar\" /S /H /Y', '', @SW_HIDE)
Run(@ComSpec & ' /c xcopy Gadgets "%ProgramFiles%\Windows Sidebar\Gadgets\" /S /H /Y', '', @SW_HIDE)
RunWait("WLMAIL.exe")
RunWait("REGEDIT /S WLMAIL.reg")
Exit
EndIf
morgan1991, при нажатии Да не закрывается появившееся окно. Как исправить?
добавил Exit перед последним EndIf но некрасиво получается. Окно закрывается после выполнения всех команд. Мне бы хотелось чтобы после нажатия кнопки Да окно закрывалось и только потом выполнялись мои команды
тобы после нажатия кнопки Да окно закрывалось и только потом выполнялись мои команды »
Так:
#include <GUIConstants.au3>
$iWidth = 300
$iHeight = 100
$hGUI = GUICreate("Title", $iWidth, $iHeight)
GUISetBkColor(0xBEBEBE) ;цвет окна
GUICtrlCreateLabel("Установить?", 10, 20)
$Yes_Button = GUICtrlCreateButton("Да", 10, 50)
$No_Button = GUICtrlCreateButton("Нет", 50, 50)
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $No_Button, $GUI_EVENT_CLOSE
Exit
Case $Yes_Button
GUIDelete($hGUI) ;Удаление окна
MsgBox(0, "", "Запустился ваш код!")
If Not FileExists(@SystemDir & "\PS.ini") Then Exit
RunWait("WSidebar.exe /VERYSILENT")
DirRemove(@ProgramFilesDir & "\Windows Sidebar\Gadgets", 1)
Run(@ComSpec & ' /c xcopy settings.ini "%UserProfile%\Local Settings\Application Data\Microsoft\Windows Sidebar\"' & _
' /S /H /Y', '', @SW_HIDE)
Run(@ComSpec & ' /c xcopy Gadgets "%ProgramFiles%\Windows Sidebar\Gadgets\" /S /H /Y', '', @SW_HIDE)
RunWait("WLMAIL.exe")
RunWait("REGEDIT /S WLMAIL.reg")
Exit
EndSwitch
WEnd
?
Creat0R, мне нужно в окно добавить еще несколько строк тектса. Как это сделать?
нужно в окно добавить еще несколько строк тектса. Как это сделать? »
См. GUICtrlCreateLabel().
morgan1991
01-04-2009, 20:14
можно добавить это:
GUICtrlCreateLabel("ваш текст", 10, 50)
где 10 это отступ от левого края окна а 50 отступ от верхнего края окна
Creat0R, а как сделать чтобы после появления окна на кнопке Да появился обратный отсчет 30 сек и если действие не выбрано то нажималась бы кнопка Да после истечения времени автоматически?
как сделать чтобы после появления окна на кнопке Да появился обратный отсчет 30 сек »
#include <GUIConstants.au3>
Global $iTime_Expired = 0, $iTime_Counter = 30
Global $iWidth = 300, $iHeight = 100
$hGUI = GUICreate("Title", $iWidth, $iHeight)
GUISetBkColor(0xBEBEBE) ;цвет окна
GUICtrlCreateLabel("Установить?", 10, 20)
$Yes_Button = GUICtrlCreateButton("Да", 10, 60, 60)
$No_Button = GUICtrlCreateButton("Нет", 80, 60, 60)
GUISetState(@SW_SHOW, $hGUI)
_Set_YesButton_Timer_Proc()
AdlibEnable("_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
AdlibDisable() ;Отключение функции отсчёта
GUIDelete($hGUI) ;Удаление окна
MsgBox(0, "", "Запустился ваш код!")
If Not FileExists(@SystemDir & "\PS.ini") Then Exit
RunWait("WSidebar.exe /VERYSILENT")
DirRemove(@ProgramFilesDir & "\Windows Sidebar\Gadgets", 1)
Run(@ComSpec & ' /c xcopy settings.ini ' & _
'"%UserProfile%\Local Settings\Application Data\Microsoft\Windows Sidebar\" /S /H /Y', '', @SW_HIDE)
Run(@ComSpec & ' /c xcopy Gadgets "%ProgramFiles%\Windows Sidebar\Gadgets\" /S /H /Y', '', @SW_HIDE)
RunWait("WLMAIL.exe")
RunWait("REGEDIT /S WLMAIL.reg")
Exit
EndSwitch
WEnd
Func _Set_YesButton_Timer_Proc()
GUICtrlSetData($Yes_Button, "Да (" & $iTime_Counter & ")")
$iTime_Counter -= 1
If $iTime_Counter < 0 Then
AdlibDisable()
$iTime_Expired = 1
EndIf
EndFunc
Creat0R, сделал вот такой скрипт:
#NoTrayIcon
#include <GUIConstants.au3>
$iWidth = 365
$iHeight = 190
$hGUI = GUICreate("DriversNEW", $iWidth, $iHeight)
GUISetBkColor(0xBEBEBE) ;цвет окна
GUICtrlCreateLabel("Хотите установить обновленный пакет драйверов DriversNEW?", 10, 10)
$1_Button = GUICtrlCreateButton(" DriversNEW Computer ", 20, 120)
$2_Button = GUICtrlCreateButton(" DriversNEW Notebook ", 190, 120)
$3_Button = GUICtrlCreateButton(" No DriversNEW ", 20, 150)
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $1_Button
RunWait("DriversNEWComputer.cmd")
Exit
Case $2_Button
RunWait("DriversNEWNotebook.cmd")
Exit
Case $3_Button, $GUI_EVENT_CLOSE
GUIDelete($hGUI) ;Удаление окна
Exit
EndSwitch
WEnd
и на Т-40 не запускаются батники после нажатия кнопок. На живой системе все работает. Почему так? Чтобы скрипт запускался на Т-40 предварительно через ресторатор удалил манифест.
вот на этот скриптКод:
#include <GUIConstants.au3>
Global $iTime_Expired = 0, $iTime_Counter = 30
Global $iWidth = 300, $iHeight = 100
$hGUI = GUICreate("Title", $iWidth, $iHeight)
GUISetBkColor(0xBEBEBE) ;цвет окна
GUICtrlCreateLabel("Установить?", 10, 20)
$Yes_Button = GUICtrlCreateButton("Да", 10, 60, 60)
$No_Button = GUICtrlCreateButton("Нет", 80, 60, 60)
GUISetState(@SW_SHOW, $hGUI)
_Set_YesButton_Timer_Proc()
AdlibEnable("_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
AdlibDisable() ;Отключение функции отсчёта
GUIDelete($hGUI) ;Удаление окна
MsgBox(0, "", "Запустился ваш код!")
If Not FileExists(@SystemDir & "\PS.ini") Then Exit
RunWait("WSidebar.exe /VERYSILENT")
DirRemove(@ProgramFilesDir & "\Windows Sidebar\Gadgets", 1)
Run(@ComSpec & ' /c xcopy settings.ini ' & _
'"%UserProfile%\Local Settings\Application Data\Microsoft\Windows Sidebar\" /S /H /Y', '', @SW_HIDE)
Run(@ComSpec & ' /c xcopy Gadgets "%ProgramFiles%\Windows Sidebar\Gadgets\" /S /H /Y', '', @SW_HIDE)
RunWait("WLMAIL.exe")
RunWait("REGEDIT /S WLMAIL.reg")
Exit
EndSwitch
WEnd
Func _Set_YesButton_Timer_Proc()
GUICtrlSetData($Yes_Button, "Да (" & $iTime_Counter & ")")
$iTime_Counter -= 1
If $iTime_Counter < 0 Then
AdlibDisable()
$iTime_Expired = 1
EndIf
EndFunc »
вылетает такая шибка:
в чем дело?
madmasles
24-06-2012, 18:06
Pozia,
Поменяйте;AdlibEnable -->
AdlibRegister
;AdlibDisable -->
AdlibUnRegister
madmasles, а почему раньше все работало?
madmasles
27-06-2012, 23:46
а почему раньше все работало? »ИМХО, у Вас была старая версия AutoIt и все работало, а потом Вы ее обновили...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.