|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » MSGBOX с отсчетом на кнопке по умолчанию |
|
||||
|
|
MSGBOX с отсчетом на кнопке по умолчанию
|
|
Пользователь Сообщения: 65 |
Помогите пожалуйста. То ли я не понимаю, то ли стандартными функциями это никак не сделать.
Нужен диалог с двумя кнопками. Текст кнопок можно задать. И чтоб на кнопке по умолчанию шел отсчет. |
|
|
Отправлено: 19:08, 29-08-2010 |
|
$AutoITer Сообщения: 446
|
Профиль | Отправить PM | Цитировать Не, такого диалога нет
![]() Напиши его ![]() |
|
------- Отправлено: 20:35, 29-08-2010 | #2 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать А теперь посмотрите ниже на «Похожие темы», там есть тема: [решено] MsgBox (Ok, Cancel) с обратным отсчетом времени.
Поиском нужно пользоваться перед созданием тем. |
|
------- Отправлено: 21:22, 29-08-2010 | #3 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать пользовался... не нашел 'msgbox с отсчетом' вот и решил создать.
в похожей теме он какойто глюкавый. первый предложенный вариант, хоть и не глюкавый, вообще требует установленной autoit)) неужели невозможно сделать лучше? |
|
Отправлено: 08:43, 30-08-2010 | #4 |
|
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Цитата Smokie_id11243755:
|
||
|
Отправлено: 15:11, 30-08-2010 | #5 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать |
|
Последний раз редактировалось Smokie_id11243755, 30-08-2010 в 16:09. Отправлено: 15:53, 30-08-2010 | #6 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Smokie_id11243755:
Цитата Smokie_id11243755:
#Include <GUIConstantsEx.au3>
#Include <ButtonConstants.au3>
#Include <WindowsConstants.au3>
$Title = "My Custom MsgBox"
$Prompt = "Are you sure?"
$CheckBoxText = "Don't show again"
$hWnd = WinGetHandle("")
$Ask = _GUIMsgBox(256+36, 2, $Title, $Prompt, 330, 120, $CheckBoxText, 10, $hWnd, "OK", "Cancel")
$CheckBitAnd = BitAND($Ask, 8)
$Var = "Pressed "
Select
Case $Ask - $CheckBitAnd = 1
$Var &= "'OK'"
Case $Ask - $CheckBitAnd = 6
$Var &= "'Yes' or 'OK'"
Case $Ask - $CheckBitAnd = 7
$Var &= "'No' or 'Cancel'"
EndSelect
If $CheckBitAnd = 8 Then $Var &= @LF & "And CheckBox <" & $CheckBoxText & "> was Checked"
_GUIMsgBox(64, 1, "Message", "Returned values:" & @LF & @LF & $Var)
Func _GUIMsgBox($iIcoType,$iBtnNum,$sTitle,$sTxt,$iW=350,$iH=130,$sCB_Txt=-1,$iTimer=-1,$hWnd=0,$sB1Txt=-1,$sB2Txt=-1,$nExStyle=-1)
Local $nYes_Button, $nNo_Button, $nOK_Button, $nCheckBox=-1, $hMsgBox_GUI, $iGuiHeight = $iH
Local $nStyle = BitOR($WS_CAPTION, $WS_POPUP)
Local $nMsg, $iReturnVal = 0
Local $nDefButton, $sDefButtonText = $sB1Txt, $iCounter
Local $iMessageBeep = -1, $iIcon_Id = 102
Local $iOld_Opt_GOEM = Opt('GuiOnEventMode', 0)
Local $iOld_Opt_GCOE = Opt('GUICloseOnESC', 0)
If $iBtnNum = 1 Then $nStyle = BitOR($nStyle, $WS_SYSMENU)
If BitAND($iIcoType, 262144) Then
If $nExStyle = -1 Or $nExStyle = Default Then $nExStyle = 0
$nExStyle = BitOR($nExStyle, $WS_EX_TOPMOST)
EndIf
If $sCB_Txt <> -1 Then $iGuiHeight += 25
If $sB1Txt = -1 Then $sB1Txt = 'OK'
If $sB2Txt = -1 Then $sB2Txt = 'Cancel'
If IsHWnd($hWnd) Then WinSetState($hWnd, "", @SW_DISABLE)
$hMsgBox_GUI = GUICreate($sTitle, $iW, $iGuiHeight, -1, -1, $nStyle, $nExStyle, $hWnd)
Select
Case $iIcoType = 16 Or $iIcoType = 16 + 256
$iIcon_Id = 103
$iMessageBeep = 0x00000010
Case $iIcoType = 32 Or $iIcoType = 32 + 256
$iIcon_Id = 102
$iMessageBeep = 0x00000020
Case $iIcoType = 48 Or $iIcoType = 48 + 256
$iIcon_Id = 101
$iMessageBeep = 0x00000030
Case $iIcoType = 64 Or $iIcoType = 64 + 256
$iIcon_Id = 104
$iMessageBeep = 0x00000040
EndSelect
GUICtrlCreateIcon('user32.dll', $iIcon_Id, 10, 10)
GUICtrlCreateLabel($sTxt, 70, 15, $iW-80, $iH-50)
Select
Case $iBtnNum = 2
$nYes_Button = GUICtrlCreateButton($sB1Txt, ($iW/2)-90, $iH-35, 70, 20, $BS_DEFPUSHBUTTON)
$nDefButton = $nYes_Button
Local $iSecButtDeffStyle = 0
If BitAND($iIcoType, 256) Then $iSecButtDeffStyle = $BS_DEFPUSHBUTTON
$nNo_Button = GUICtrlCreateButton($sB2Txt, ($iW/2)+20, $iH-35, 70, 20, $iSecButtDeffStyle)
If BitAND($iIcoType, 256) Then $nDefButton = $nNo_Button
Case Else
$nOK_Button = GUICtrlCreateButton($sB1Txt, ($iW-70)/2, $iH-35, 70, 20)
GUICtrlSetState($nOK_Button, $GUI_ONTOP)
$nDefButton = $nOK_Button
EndSelect
If $sCB_Txt <> -1 Then $nCheckBox = GUICtrlCreateCheckbox($sCB_Txt, 15, $iH-10)
GUISetState(@SW_SHOW, $hMsgBox_GUI)
DllCall("user32.dll", "int", "MessageBeep", "int", $iMessageBeep)
If $iTimer > 0 Then
$iCounter = $iTimer
$iTimer = TimerInit()
$sDefButtonText = GUICtrlRead($nDefButton)
GUICtrlSetData($nDefButton, $sDefButtonText & ' (' & $iCounter & ')')
EndIf
While 1
$nMsg = GUIGetMsg()
If $iTimer > 0 And TimerDiff($iTimer) >= 1000 Then
$iTimer = TimerInit()
$iCounter -= 1
GUICtrlSetData($nDefButton, $sDefButtonText & ' (' & $iCounter & ')')
If $iCounter < 0 Then $nMsg = $nDefButton
EndIf
Select
Case $iBtnNum = 2 And $nMsg = $nYes_Button
$iReturnVal = 6
ExitLoop
Case $iBtnNum = 2 And $nMsg = $nNo_Button
$iReturnVal = 7
ExitLoop
Case $nMsg = -3 Or ($nMsg = $nOK_Button And $iBtnNum <> 2)
$iReturnVal = 1
ExitLoop
EndSelect
Wend
If GUICtrlRead($nCheckBox) = 1 Then $iReturnVal += 8
If IsHWnd($hWnd) Then WinSetState($hWnd, "", @SW_ENABLE)
GUIDelete($hMsgBox_GUI)
If IsHWnd($hWnd) Then GUISwitch($hWnd)
Opt('GuiOnEventMode', $iOld_Opt_GOEM)
Opt('GUICloseOnESC', $iOld_Opt_GCOE)
Return $iReturnVal
EndFunc
|
||
|
------- Отправлено: 17:09, 30-08-2010 | #7 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать сэнкс
х) тока ща заметил што создал тему о какомто DLGBOX) |
|
Отправлено: 18:43, 30-08-2010 | #8 |
|
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать А можно ли сделать так, чтобы отсчет останавливался при нажатии кнопок клавиатуры или клика мышкой? Как обычно и происходит в таких диалогах в полноценных программах
|
|
Отправлено: 18:43, 16-01-2012 | #9 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Smallkey:
![]() Цитата Smallkey:
|
||
|
------- Отправлено: 21:58, 16-01-2012 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Интернет - [ie8] Не грузятся файлы по кнопке | nictrace | Microsoft Windows 2000/XP | 3 | 06-07-2012 01:30 | |
| [решено] MsgBox (Ok, Cancel) с обратным отсчетом времени. | A4S | AutoIt | 17 | 10-09-2009 17:16 | |
| [решено] Как кликнуть по кнопке ToolStripButton | alexey_a | AutoIt | 13 | 02-04-2009 17:56 | |
| Интерфейс - Вопрос по кнопке выключения в меню пуск? | Simlion | Microsoft Windows Vista | 1 | 07-09-2007 08:56 | |
| цвет надписи на кнопке | hameg | Программирование и базы данных | 4 | 09-03-2004 19:27 | |
|