Войти

Показать полную графическую версию : Проблема с кнопкой. И еще надо чтобы $form закрылся но скрипт бы выполнялся дальше


JaguarSP
20-04-2010, 01:59
Вот весь скрипт...

;#NoTrayIcon
#include <GUIConstants.au3>
$paz=InputBox("JaguarSP Timer for OFF", "Введите время в миннутах ;-)")


$Form = GUICreate("JaguarSP Timer for OFF", 304, 233, 511, 253)
$Restart = GUICtrlCreateButton("Restart", 8, 200, 137, 25, 0)
GUICtrlSetCursor (-1, 0)
$Logoff = GUICtrlCreateButton("Logoff", 156, 200, 137, 25, 0)
GUICtrlSetCursor (-1, 0)
$Shutdown = GUICtrlCreateButton("Shutdown", 8, 173, 284, 25, 0)
GUICtrlSetCursor (-1, 0)
$Label1 = GUICtrlCreateLabel("Выберите что произойдет через это время", 48, 24, 263, 17)
$Label2 = GUICtrlCreateLabel("Shutdown-Выключение компъютера", 24, 48, 186, 17)
$Label3 = GUICtrlCreateLabel("Restart- Перезагрузка компъютера", 24, 72, 183, 17)
$Label4 = GUICtrlCreateLabel("Logoff- Завершить работу текущей учетной записи ", 24, 96, 263, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg=$Restart
$vot=2


Case $nMsg = $GUI_EVENT_CLOSE
Exit

EndSelect
WEnd
$par=$paz * 60000-20000
$begin = TimerInit()
sleep($par)
$dif = TimerDiff($begin)
$msg=MsgBox(262145,"Atention", "Ваш компъютер будет через 20 секунд", 15)
If $msg=1 Then
Sleep(20000)
Shutdown($vot)
EndIf
If $msg=2 Then MsgBox(262144,"Atention", "Вы отменили запуск ядерных ракет на USA мир спасен =))")
If $msg=-1 then Shutdown($vot)


надо что-то написать после этого:

Case $nMsg=$Restart
$vot=2

Чтобы $form закрылся но скрипт бы выполнялся дальше.... а что нуна вставить не могу понять=((( (видимо в силу не опытности)

Creat0R
20-04-2010, 02:27
Предупреждение за нарушение правил форума, пункт 2.7 (http://forum.oszone.net/rules.html#2.7):

В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема).

Переименуйте пожалуйста тему.

[hr]

Вот весь скрипт... »
Который нужно заключать в теги кода.

madmasles
20-04-2010, 09:35
JaguarSP,
Попробуйте так:#NoTrayIcon
;#RequireAdmin
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$paz = InputBox (http://www.autoitscript.com/autoit3/docs/functions/InputBox.htm)("JaguarSP Timer for OFF", "Введите время в секундах ;-)", "", " M2")
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $paz = "" Or (http://www.autoitscript.com/autoit3/docs/keywords.htm#Or) StringIsDigit (http://www.autoitscript.com/autoit3/docs/functions/StringIsDigit.htm)($paz) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
$Form1 = GUICreate (http://www.autoitscript.com/autoit3/docs/functions/GUICreate.htm)("", 400, 498, -1, -1, $WS_BORDER, BitOR (http://www.autoitscript.com/autoit3/docs/functions/BitOR.htm)($WS_EX_TOOLWINDOW, $GUI_WS_EX_PARENTDRAG, $WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Label1 = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)($paz, 16, 40, 262, 205, $SS_CENTER)
GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)(-1, 130, 400, 0, "Comic Sans MS")
GUICtrlSetColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetColor.htm)(-1, 0xFF0000)
$Label3 = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Сек.", 280, 185, 109, 62)
GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)(-1, 36, 800, 0, "Comic Sans MS")
$Restart = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Restart", 8, 450, 137, 25, 0)
GUICtrlSetCursor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetCursor.htm)(-1, 0)
$Logoff = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Logoff", 156, 450, 137, 25, 0)
GUICtrlSetCursor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetCursor.htm)(-1, 0)
$Shutdown = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Shutdown", 8, 423, 284, 25, 0)
GUICtrlSetCursor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetCursor.htm)(-1, 0)
$Label4 = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Выберите что произойдет через это время", 48, 324, 263, 17)
$Label5 = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Shutdown-Выключение компъютера", 24, 348, 386, 17)
$Label6 = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Restart- Перезагрузка компъютера", 24, 372, 383, 17)
$Label7 = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Logoff- Завершить работу текущей учетной записи ", 24, 396, 263, 17)
GUISetState (http://www.autoitscript.com/autoit3/docs/functions/GUISetState.htm)(@SW_SHOW (http://www.autoitscript.com/autoit3/docs/macros.htm#@SW_SHOW))

While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
$nMsg = GUIGetMsg (http://www.autoitscript.com/autoit3/docs/functions/GUIGetMsg.htm)()
Switch (http://www.autoitscript.com/autoit3/docs/keywords.htm#Switch) $nMsg
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $Restart
_Timer()
;Shutdown(2)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, "", "Перезагрузка")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $Logoff
_Timer()
;Shutdown(0)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, "", "Выход из учетной записи")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $Shutdown
_Timer()
;Shutdown(1)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, "", "Выключение")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
EndSwitch (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSwitch)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _Timer()
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $Start = $paz To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) 0 Step (http://www.autoitscript.com/autoit3/docs/keywords.htm#Step) -1
Select (http://www.autoitscript.com/autoit3/docs/keywords.htm#Select)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $Start >= 7
GUICtrlSetColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetColor.htm)($Label1, 0x00FF00)
GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($Label1, $Start)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $Start > 3
GUICtrlSetColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetColor.htm)($Label1, 0xFF8000)
GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($Label1, $Start)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $Start >= 0
GUICtrlSetColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetColor.htm)($Label1, 0xFF0000)
GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($Label1, $Start)
EndSelect (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSelect)
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(1000)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc) ;==>_Timer

JaguarSP
20-04-2010, 09:57
хм вроде гуд=) теперь буду разбираться как работает этот гуд=) спасибо=)

JaguarSP
20-04-2010, 20:24
после еще одного дня дротсва над скриптом вышли еще проблемы =(

#NoTrayIcon
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Constants.au3>

$par = InputBox("JaguarSP Timer for OFF", "Введите время в минутах ;-)", "", " M2")
$paz=$par*60
If $paz = "" Or StringIsDigit($paz) <> 1 Then Exit
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
$Form1 = GUICreate("Shootdown", 400, 498, -1, -1 ); $WS_BORDER, BitOR($WS_EX_TOOLWINDOW, $GUI_WS_EX_PARENTDRAG, $WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE)); $hGUI



$pic=GUICtrlCreatePic ( @ScriptDir & '\shootdown.bmp', 0, 0 ,400 ,498 )
GUICtrlSetState($Pic, $GUI_DISABLE)
$Label1 = GUICtrlCreateLabel($paz, 16, 150, 262, 120, $SS_CENTER)
GUICtrlSetFont(-1, 72, 400, 0, "Comic Sans MS")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Label3 = GUICtrlCreateLabel("Сек.", 280, 185, 109, 62)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 36, 800, 0, "Comic Sans MS")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$cancel = GUICtrlCreateButton("Cancel", 295, 422, 100, 53, 0)
GUICtrlSetCursor(-1, 0)
$Restart = GUICtrlCreateButton("Restart", 8, 450, 137, 25, 0)
GUICtrlSetCursor(-1, 0)
$Logoff = GUICtrlCreateButton("Logoff", 156, 450, 137, 25, 0)
GUICtrlSetCursor(-1, 0)
$Shutdown = GUICtrlCreateButton("Shutdown", 8, 423, 284, 25, 0)
GUICtrlSetCursor(-1, 0)
$Label4 = GUICtrlCreateLabel("Выберите необходимое дейстыие", 48, 324, 263, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Label5 = GUICtrlCreateLabel("Shutdown-Выключение компъютера", 24, 348, 386, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Label6 = GUICtrlCreateLabel("Restart- Перезагрузка компъютера", 24, 372, 383, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Label7 = GUICtrlCreateLabel("Logoff- Завершить работу текущей учетной записи ", 24, 396, 263, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW)

$RestoreItem = TrayCreateItem("Восстановить.")
TrayItemSetOnEvent(-1, "_RestoreFromTray_Proc")

TraySetOnEvent(-13, "_RestoreFromTray_Proc")
TraySetClick(1)
GUISetState()
While -1
Switch GUIGetMsg()
Case -3
ExitLoop
Case -4
GUISetState(@SW_HIDE)
TraySetState(1)
EndSwitch
WEnd

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Restart
_Timer()
$msg=MsgBox(262145,"Atention", "Ваш компъютер будет через 20 секунд", 15)
If $msg=1 Then
Sleep(20000)
MsgBox(0, "", "Перезагрузка")
EndIf
If $msg=2 Then MsgBox(262144,"Atention", "Вы отменили запуск ядерных ракет на USA мир спасен =))")
If $msg=-1 Then MsgBox(0, "", "Перезагрузка2")
;Shutdown(2)
;MsgBox(0, "", "Перезагрузка")
Exit
Case $Logoff
_Timer()
$msg=MsgBox(262145,"Atention", "Ваш компъютер будет через 20 секунд", 15)
If $msg=1 Then
Sleep(20000)
MsgBox(0, "", "Выход из учетной записи")
EndIf
If $msg=2 Then MsgBox(262144,"Atention", "Вы отменили запуск ядерных ракет на USA мир спасен =))")
If $msg=-1 Then MsgBox(0, "", "Выход из учетной записи2")
;Shutdown(0)
;MsgBox(0, "", "Выход из учетной записи")
Exit
Case $Shutdown
_Timer()
$msg=MsgBox(262145,"Atention", "Ваш компъютер будет через 20 секунд", 15)
If $msg=1 Then
Sleep(20000)
MsgBox(0, "", "Выключение")
EndIf
If $msg=2 Then MsgBox(262144,"Atention", "Вы отменили запуск ядерных ракет на USA мир спасен =))")
If $msg=-1 Then MsgBox(0, "", "Выключение2")
;Shutdown(1)
;MsgBox(0, "", "Выключение")
Exit
Case $cancel
$msg2=MsgBox(262148,"Atention", "Вы уверенны?")
If $msg2=6 Then Exit

EndSwitch
WEnd

Func _Timer()
For $Start = $paz To 0 Step -1
Select
Case $Start >= 7
GUICtrlSetColor($Label1, 0x00FF00)
GUICtrlSetData($Label1, $Start)
Case $Start > 3
GUICtrlSetColor($Label1, 0xFF8000)
GUICtrlSetData($Label1, $Start)
Case $Start >= 0
GUICtrlSetColor($Label1, 0xFF0000)
GUICtrlSetData($Label1, $Start)
EndSelect
Sleep(1000)
Next
Return
EndFunc ;==>_Timer

Func _RestoreFromTray_Proc()
If BitAND(WinGetState($Form1), 2) = 2 Then Return
TraySetState(2)
GUISetState(@SW_SHOW)
GUISetState(@SW_RESTORE)
EndFunc


проблема в том что кнопки работают как то не корректно чтоли... например если нажимаю свернуть в трее то после разварачивания обратно, не какие кнопки не работают(кроме свернуть и то сварачивается не в трее а просто, если на что нить нажимал....). И насчет кнопки cancel, как сделать чтобы она останавливала скрипт в любой момент(в частности когда идет таймер) и спрашивала да или нет и если нет то скрипт идет дальше...




© OSzone.net 2001-2012