Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Изменить текст кнопки MSGBOX'a

Ответить
Настройки темы
Изменить текст кнопки MSGBOX'a

Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: sashadeg
Дата: 19-11-2009
Здраствуйте. Нужно изменить текст кнопки Отмена в msgbox'e который вылазит после подключения с интернетом.

8 и 21 строка кода - это тот самый msgbox
Вот код программы:
Код: Выделить весь код
Opt("TrayAutoPause", 0)
TrayTip("The Internet is Сonnected? v.1.3.beta", "Подождите...", 5, 1)
$var = Ping("www.google.com")

;------------------------------------------------------------------------------------------

If $var<> 0 Then
    MsgBox(65, "The Internet is Сonnected?", "Все в порядке, Интрернет работает :)"& @CRLF &"Время подключения:  " & @hour &":"& @min &":"&@sec)
    Exit
Else
    $1=_MsgBoxTimer(36, 'The Internet is Сonnected? v.1.3.beta',"К сожалению, сейчас Интернет не подключен :(" & @CRLF & "Сообщить, если Интернет будет работать?", 5)
EndIf

;------------------------------------------------------------------------------------------

If $1 <> 7 Then
    TrayTip("The Internet is Сonnected? v.1.3.beta","Программа ожидает подключения сети Интернет...", 7, 1)
    While 1
        $var = Ping("www.google.com")
            If $var <> 0 Then
                MsgBox(65, "The Internet is Сonnected? v.1.3.beta", "Все в порядке, Интрернет работает :)"& @CRLF &"Время подключения:  " & @hour &":"& @min &":"&@sec)
            Exit
            EndIf
    sleep(500)
    WEnd
Else
    TrayTip("The Internet is Сonnected? v.1.3.beta","Bye-bye!!!", 3, 1)
    Sleep(3000)
EndIf

Func _MsgBoxTimer($iFlag, $sTitle, $sText, $iMBTimeOut = 0, $hWnd = 0)
    Local $hFile, $sMBLine, $sSet_Text, $iRet
    $sMBLine = '#NoTrayIcon' & @CRLF
    $sMBLine &= '$h_Title = WinGetHandle("' & $sTitle & '")' & @CRLF
    $sMBLine &= 'Opt("WinWaitDelay", 1)' & @CRLF
    $sMBLine &= 'While Not WinExists($h_Title)' & @CRLF
    $sMBLine &= '    Sleep(10)' & @CRLF
    $sMBLine &= 'WEnd' & @CRLF

    If $iMBTimeOut > 0 Then
        $sMBLine &= _
                '$sButtonText = ControlGetText($h_Title, "", "Button1")' & @CRLF & _
                'ControlSetText($h_Title, "", "Button1", $sButtonText & " (' & $iMBTimeOut & ')")' & @CRLF & _
                '$TimerInit = TimerInit()' & @CRLF & _
                '$iTime = ' & $iMBTimeOut & @CRLF & _
                'While $iTime > 0' & @CRLF & _
                '   If Not WinExists($h_Title) Then ExitLoop' & @CRLF & _
                '   $sButtonText = StringRegExpReplace(ControlGetText($h_Title, "", "Button1"), " \(\d+\)$", "")' & @CRLF & _
                '   ControlSetText($h_Title, "", "Button1", $sButtonText & " (" & $iTime & ")")' & @CRLF & _
                '   If Not WinExists($h_Title) Then ExitLoop' & @CRLF & _
                '   Sleep(1000)' & @CRLF & _
                '   If Not WinExists($h_Title) Then ExitLoop' & @CRLF & _
                '   $iTime -= 1' & @CRLF & _
                'WEnd'
    EndIf
    $hFile = FileOpen(@TempDir & '\MiscMMB.tmp', 2)
    FileWrite($hFile, $sMBLine)
    FileClose($hFile)

    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\MiscMMB.tmp"')
    $iRet = MsgBox($iFlag, $sTitle, StringFormat($sText, $iMBTimeOut), $iMBTimeOut)

    While FileExists(@TempDir & '\MiscMMB.tmp')
        FileDelete(@TempDir & '\MiscMMB.tmp')
    WEnd

    Return $iRet
EndFunc   ;==>_MsgBoxTimer

-------
Ну вы ребята даёте...


Отправлено: 09:06, 19-11-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Что это? Пример, или тут есть скрытый вопрос?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:10, 19-11-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Ой, простите пожалуйста... Почему то не вывелся текст сообщения, щас исправлю

оффтоп лично Creatory
Creator, ты входишь в состав команды MultiAC???Я даже подумать не мог, что на этом форуме увижу ТАКИХ ЛЮДЕЙ!!! РЕСПЕКТ И УВАЖУХА!!!!

-------
Ну вы ребята даёте...


Последний раз редактировалось sashadeg, 19-11-2009 в 10:58.


Отправлено: 10:35, 19-11-2009 | #3


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата sashadeg:
Нужно изменить текст кнопки Отмена в msgbox'e который вылазит после подключения с интернетом. »
А по аналогии с функцией _MsgBoxTimer() почему не попробовал сделать? Вот такая функция:
читать дальше »
Код: Выделить весь код
Func _MsgBoxSetButtonText($sTitleOfMsgbox)
   Local  $sMBLineTmp, $hFileTmp,$NewNameOfButton="Закрыть"
    $sMBLineTmp = '#NoTrayIcon' & @CRLF
    $sMBLineTmp &= '$h_Title = WinGetHandle("' & $sTitleOfMsgbox & '")' & @CRLF
    $sMBLineTmp &= 'Opt("WinWaitDelay", 1)' & @CRLF
    $sMBLineTmp &= 'While Not WinExists($h_Title)' & @CRLF
    $sMBLineTmp &= '    Sleep(10)' & @CRLF
    $sMBLineTmp &= 'WEnd' & @CRLF

     $sMBLineTmp &= _
                '$sButtonText = ControlGetText($h_Title, "", "Button2")' & @CRLF & _
                'ControlSetText($h_Title, "", "Button2", "'&$NewNameOfButton & '")' & @CRLF & _
                'Exit'
    $hFileTmp = FileOpen(@TempDir & '\Tmp.tmp', 2)
    FileWrite($hFileTmp, $sMBLineTmp)
    FileClose($hFileTmp)
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\Tmp.tmp"')
EndFunc   ;==>_MsgBoxSetButtonText
Если вставиш вызов этой функции перед твоим msgbox-oм, то будет почти то что нужно (только жалко вот что почти...)

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 13:23, 19-11-2009 | #4


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


вставляю... и как раз твоё почти тут и происходит (вылетает с ошибкой)

-------
Ну вы ребята даёте...


Отправлено: 14:10, 19-11-2009 | #5


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Image00027.png
(31.8 Kb, 34 просмотров)

Да, что вы как любите проблемы создавать ... да "нарисуй" в Koda любое окошко с любыми кнопками и любым текстом.

Вот я себе делал функцию для MsgBox`ов ... различает 8 флагов (16, 17, 32, 33, 48, 49, 64, 65), + таймер в резальтате получается вот, что ... смотри присоединённый файл.

Если нужно соберу рабочий пример (скрипт, картинки, Upx, ResHacker...)

Отправлено: 16:04, 19-11-2009 | #6


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar MsgBox_Test.rar
(94.0 Kb, 23 просмотров)

Короче вот ...если что нетак необижатса , времени не было совсем.

Незабываем накидать в папку Utilities - EXEшнички, скачать можно по ссылкам из моей подписи. (всё вместе не уместилось в присоединённый файл)
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:30, 19-11-2009 | #7


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


FlatX007, спасибо большое... хорошие фунуции. НО.
То что у тебя это все очень сложно... тем более у тебя эти функции используют сторониие скрипты...

Сам смысл всей этой темы (и предыдущей которую я создавал) - уместить все в 1 скрипт
Я думаю найдется умелец, который сможет изменить код (см первый пост) чтобы текст кнопки "Отмена" можно было изменить на любой другой...

-------
Ну вы ребята даёте...


Отправлено: 18:32, 19-11-2009 | #8


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата sashadeg:
вставляю... и как раз твоё почти тут и происходит (вылетает с ошибкой) »
Значит не так вставляеш. А нужно бы уже научится. Мое "почти" значит то, что после появления твоего окна, текст на кнопке Отмена изменяется через несколько милисикунд, и это заметно.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 19:21, 19-11-2009 | #9


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Цитата sashadeg:
уместить все в 1 скрипт »
- так при запуске и будет один рабочий "скрипт" ,(никаких других сторонних, создаваемых, процессов) в чём проблема непонимаю.

В первом посте получается 2 процесса!

Отправлено: 19:35, 19-11-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Изменить текст кнопки MSGBOX'a

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Как изменить текст в окне ОТПРАВИТЬ ОТЧЁТ МАЙКРОСОФТ? Klam Хочу все знать 17 11-11-2009 06:21
[решено] Как изменить текст лицензионного согладения? conteacky Автоматическая установка Windows 2000/XP/2003 1 28-05-2009 10:26
[решено] MsgBox. Как расположить текст в столбик? Firebolt AutoIt 5 26-05-2009 23:35
Изменить Цвет Кнопки Пуск Minton Автоматическая установка Windows 2000/XP/2003 11 24-05-2008 13:17
Как изменить курсор(скрол) средней кнопки мыши? FADE Вебмастеру 6 06-07-2004 12:41




 
Переход