#pragma compile(AutoItExecuteAllowed, True)
Local $iWinFlag = 4097
Local $sWinTitle = 'Сообщение'
Local $sWinText = 'Какой-то текст'
Local $iWinTimeout = 20
;Local $hWinHandle =
$isSend = _MsgBoxTimer($iWinFlag, $sWinTitle, $sWinText, $iWinTimeout)
Func _MsgBoxTimer($iFlag, $sTitle, $sText, $iTimeOut = 0, $hWnd = 0)
Local $sLen, $hFile, $sMBLine, $iRet
If $iTimeOut Then
$sLen = StringLen($iTimeOut & ')')
$sMBLine = '#NoTrayIcon' & @CRLF & _
'Opt("WinWaitDelay", 1)' & @CRLF & _
'$hWnd = WinWait("[CLASS:#32770;TITLE:' & $sTitle & ']", "", ' & $iTimeOut & ')' & @CRLF & _
'If Not $hWnd Then Exit' & @CRLF & _
'$sControlText = ControlGetText($hWnd, "", "Button1")' & @CRLF & _
'$iTime = ' & $iTimeOut & @CRLF & _
'ControlSetText($hWnd, "", "Button1", $sControlText & " (" & StringFormat("%-' & $sLen & 's", $iTime & ")"))' & @CRLF & _
'While $iTime > 0' & @CRLF & _
' ControlSetText($hWnd, "", "Button1", $sControlText & " (" & StringFormat("%-' & $sLen & 's", $iTime & ")"))' & @CRLF & _
' If Not WinExists($hWnd) Then ExitLoop' & @CRLF & _
' Sleep(1000)' & @CRLF & _
' $iTime -= 1' & @CRLF & _
'WEnd'
$hFile = FileOpen(@TempDir & '\MsgBoxTimer.tmp', 2)
FileWrite($hFile, $sMBLine)
FileClose($hFile)
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\MsgBoxTimer.tmp"')
EndIf
$iRet = MsgBox($iFlag, $sTitle, $sText, $iTimeOut, $hWnd)
While FileExists(@TempDir & '\MsgBoxTimer.tmp')
FileDelete(@TempDir & '\MsgBoxTimer.tmp')
WEnd
Return $iRet
EndFunc ;==>_MsgBoxTimer