![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Поиск слова в исходном коде html страницы?????? |
|
[решено] Поиск слова в исходном коде html страницы??????
|
Новый участник Сообщения: 35 |
Народ, помогите пожалуйста, для диплома надо. Короче надо реализовать скрипт (на любом языке) который бы осуществлял поиск определенного слова в коде страницы, если находит то открывает одну ссылку, если нет другую. Скрипт должен запускаться по нажатию кнопки, заранее всем спасибо!
|
|
Отправлено: 23:27, 19-05-2010 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать klsorat2010,
Чего-то мне не придумать как это сделать. Как я понимаю, 6 страниц это 6 тестов. Может быть, окно IE сделать не активным и нарисовать 6 кнопок "Пройти тест 1", ..., "Пройти тест 6", и управлять всеми действиями только кнопками? Можно сделать так, чтобы эти кнопки появлялись по очереди, т.е, прошел тест1, появился тест2 и т.д., а в конце - статистика "Вы прошли 2 теста из 6, Ваша оценка твердый тройбан". И, в зависимости от оценки, открывать разные программы. ![]() |
Отправлено: 14:32, 22-05-2010 | #41 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать нет, дело в том что все тесты там уже реализованы на web технологиях, сам тест это компонент тестирования, он стоит на jooml'е она в свою очередь на denwer'e, переделывать все под эти кнопки геморойно, да и нет смысла уже, помойму легче придумать ка спрятать эту кнопку до определенного момента. Ну неужели Вы правда ничего придумать не можете, я бы и сам подумал, но я этот Autoit установил тока вчера и раньше дела ни с ним не имел, а как следствие и с его функциями и переменными, а Вы же вроде уже подкованный человек в этом дела?
Слушайте а может тогда сделать 3 условия для поиска а не 2? Т.е. если находит "Не сдан", то "сообщение об ошибке", если находит "Сдан", то "Сообщение об удачном прохождении и предложения о запуске программы" (кстати нельзя ли автоматом ее запускать после, ну например прохождения 2-3 сек отображения этого сообщения?) и третий вариант, если не находит не того ни другого, тогда третье сообщение. Думаю третье условие впихнуто не так сложно? |
Отправлено: 14:37, 22-05-2010 | #42 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Или как вариант, может можно сделать, что бы кнопка отображалась при условии нахождения на странице слова "Результата"?
Спасибо со скрытием кнопки я уже сам разобрался, но остался вопрос об автоматическом запуске программы после отображения окна об успешном прохождении теста |
Отправлено: 15:32, 22-05-2010 | #43 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать klsorat2010,
Вот что у меня получилось. При активации кнопки Проверка теста окно с IE становится не активным до тех пор, пока на кнопку не нажмешь. #RequireAdmin #include "GUIConstantsEx.au3" #include "WindowsConstants.au3" #include "IE.au3" Opt("TrayMenuMode", 1) _IEErrorHandlerRegister() $oIE = _IECreateEmbedded() $hForm = GUICreate("Автоматизированная система обучения.", @DesktopWidth, @DesktopHeight, 0, 0, -1, $WS_EX_TOOLWINDOW) GUISetBkColor(0x99CCFF) $GUIActiveX = GUICtrlCreateObj($oIE, 5, 5, @DesktopWidth - 10, @DesktopHeight - 150) $GUI_Button_Test = GUICtrlCreateButton("Запустить АСО", @DesktopWidth / 2 - 250, _ @DesktopHeight - 100, 150, 30) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetBkColor(-1, 0xFFCCFF) GUICtrlSetFont(-1, 11, 600, 2, "Arial") GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Перейти на страницы прохождения тестов.") $GUI_Button_Check = GUICtrlCreateButton("Запустить MatLab", @DesktopWidth / 2 + 100, _ @DesktopHeight - 100, 150, 30) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetBkColor(-1, 0xFFCCFF) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 11, 600, 2, "Arial") GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Проверить результат теста.") DllCall("User32.dll", "long", "AnimateWindow", "hwnd", $hForm, "long", 1000, "long", 0x10) GUISetState() _IENavigate($oIE, "C:/proba.jpg") While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE DllCall("User32.dll", "long", "AnimateWindow", "hwnd", $hForm, "long", 1000, "long", _ 0x10 + 0x10000) Exit Case $msg = $GUI_Button_Test GUICtrlSetState($GUI_Button_Test, $GUI_DISABLE) _IENavigate($oIE, "http://demo/") _ControlTest() Case $msg = $GUI_Button_Check _ControlTest() GUICtrlSetState($GUI_Button_Check, $GUI_DISABLE) $sText = _IEBodyReadText($oIE) ;########################################################################################## If StringInStr($sText, "Не сдан") <> 0 Then $iMsgBoxAnswer1 = MsgBox(266257, "Внимание!", "Вы не прошли этот тест." & @CRLF _ & @CRLF & "ОК - продолжить прохождение тестов." & _ @CRLF & "Отмена - вернуться на домашнюю страницу." & @CRLF & _ "У вас есть 5 секунд для выбора", 5) Select Case $iMsgBoxAnswer1 = 1 Or $iMsgBoxAnswer1 = -1;OK _IEAction($oIE, "back") GUICtrlSetState($GUIActiveX, $GUI_ENABLE) _ControlTest() Case $iMsgBoxAnswer1 = 2 ;Cancel _IENavigate($oIE, "http://demo/index.php?option=com_ariquiz&Itemid=8") GUICtrlSetState($GUIActiveX, $GUI_ENABLE) GUICtrlSetState($GUI_Button_Test, $GUI_ENABLE) EndSelect Else $iMsgBoxAnswer = MsgBox(266275, "Успех!", "Вы успешно прошли этот тест!" & @CRLF _ & @CRLF & "Да - открыть архиватор WinRAR и продолжить прохождение тестов." & _ @CRLF & "Нет - продолжить прохождение тестов" & @CRLF & _ "Отмена - вернуться на домашнюю страницу." & @CRLF & _ "У вас есть 5 секунд для выбора", 5) Select Case $iMsgBoxAnswer = 6 ;Yes Run(@ProgramFilesDir & "\WinRAR\WinRAR.exe") _IEAction($oIE, "back") GUICtrlSetState($GUIActiveX, $GUI_ENABLE) _ControlTest() Case $iMsgBoxAnswer = 7 Or $iMsgBoxAnswer = -1 ;No _IEAction($oIE, "back") GUICtrlSetState($GUIActiveX, $GUI_ENABLE) _ControlTest() Case $iMsgBoxAnswer = 2 ;Cancel _IENavigate($oIE, "http://demo/index.php?option=com_ariquiz&Itemid=8") GUICtrlSetState($GUIActiveX, $GUI_ENABLE) GUICtrlSetState($GUI_Button_Test, $GUI_ENABLE) EndSelect EndIf ;########################################################################################## EndSelect WEnd Func _ControlTest() While 1 Local $sUrl = _IEPropertyGet($oIE, "locationurl") If StringInStr($sUrl, _ "http://demo/index.php?option=com_ariquiz&task=quiz_finished&ticketId=") _ <> 0 Then GUICtrlSetState($GUI_Button_Check, $GUI_ENABLE) GUICtrlSetState($GUIActiveX, $GUI_DISABLE) Return EndIf Sleep(100) WEnd EndFunc ;==>_ControlTest |
Последний раз редактировалось madmasles, 23-05-2010 в 00:56. Причина: Поправил код Отправлено: 16:39, 22-05-2010 | #44 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать madmasles,
спасибо, с кнопкой я разобрался, а как насчет автоматического запуск программы после сообщения об успешном прохождениии теста, без возможности какого либо выбора, сдал тест, нажал кнопку о проверке, увидел сообщении об успешной сдаче, 3-4 сек, запустилась програма и еще, у меня вместо первой страницы стоит как сделать так что бы кнопка "$GUI_Button_Test" былак активной только на этой странице? |
Отправлено: 16:46, 22-05-2010 | #45 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата klsorat2010:
Кнопка "$GUI_Button_Test" в моем коде и так только на первой странице активна. |
|
Отправлено: 17:15, 22-05-2010 | #46 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать У меня кнопка $GUI_Button_Test = GUICtrlCreateButton("Запустить АСО", @DesktopWidth / 2 - 250, @DesktopHeight - 100, 150, 30) активна все время.
И еще надо бы реализовать кнопку выхода из программы. #RequireAdmin #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <IE.au3> Opt("TrayMenuMode", 1) _IEErrorHandlerRegister() $oIE = _IECreateEmbedded() $hForm = GUICreate("Автоматизированная сисиема обучения", @DesktopWidth, @DesktopHeight, _ 0, 0, _ $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN) $GUIActiveX = GUICtrlCreateObj($oIE, 5, 5, @DesktopWidth - 10, @DesktopHeight - 150) $GUI_Button_Test = GUICtrlCreateButton("Запустить АСО", @DesktopWidth / 2 - 250, @DesktopHeight - 100, 150, 30) $GUI_Button_Check = GUICtrlCreateButton("Запустить MatLab", @DesktopWidth / 2 - 50, @DesktopHeight - 100, 150, 30) GUICtrlSetState(-1, $GUI_DISABLE) $GUI_Button_Home = GUICtrlCreateButton("Начать заново", @DesktopWidth / 2 + 150, @DesktopHeight - 100, 150, 30) GUICtrlSetState(-1, $GUI_DISABLE) GUISetState() _IENavigate($oIE, "C:/proba.jpg") While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit Case $msg = $GUI_Button_Test _IENavigate($oIE, "http://demo/") While 1 Sleep(100) $sText = _IEBodyReadText($oIE) If StringInStr($sText, "Quiz Result") <> 0 Then ExitLoop WEnd GUICtrlSetState($GUI_Button_Check, $GUI_ENABLE) Case $msg = $GUI_Button_Check GUICtrlSetState($GUI_Button_Check, $GUI_DISABLE) GUICtrlSetState($GUI_Button_Test, $GUI_DISABLE) $sText = _IEBodyReadText($oIE) If StringInStr($sText, "Не сдан") <> 0 Then MsgBox(266256, "Внимание!", "Вы не прошли тестирование, запуск не возможен!") Else If MsgBox(266308, "Поздравляем!", "Вы успешно прошли тестирование") <> 0 Then Run("c:\Program Files\WinRAR\WinRAR.exe") EndIf EndIf GUICtrlSetState($GUI_Button_Home, $GUI_ENABLE) Case $msg = $GUI_Button_Test GUICtrlSetState($GUI_Button_Home, $GUI_ENABLE) _IENavigate($oIE, "C:/proba.jpg") GUICtrlSetState($GUI_Button_Test, $GUI_DISABLE) Case $msg = $GUI_Button_Home GUICtrlSetState($GUI_Button_Home, $GUI_DISABLE) _IENavigate($oIE, "http://demo/index.php?option=com_ariquiz&Itemid=8") GUICtrlSetState($GUI_Button_Test, $GUI_ENABLE) EndSelect WEnd |
Последний раз редактировалось klsorat2010, 22-05-2010 в 20:54. Отправлено: 18:47, 22-05-2010 | #47 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать klsorat2010,
Вы код обрамляйте тегом код (#). Вы мой последний вариант не смотрели? Цитата klsorat2010:
Цитата madmasles:
|
||
Отправлено: 19:52, 22-05-2010 | #48 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать у меня не открываются эти долбаные кавычки. Какой вопрос остается открытым? После запуска программы по кнопке начать тестирование, она так же остается активной.
|
Отправлено: 20:48, 22-05-2010 | #49 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата klsorat2010:
Вы мой последний код скопируйте, поменяйте ссылки на нужные Вам, а потом будем разбираться дальше. |
|
Последний раз редактировалось madmasles, 22-05-2010 в 21:26. Причина: добавил. Отправлено: 21:06, 22-05-2010 | #50 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Отображение HTML страницы в окне | assch | AutoIt | 3 | 10-08-2009 14:58 | |
Сохранить код из HTML страницы... | FlatX007 | AutoIt | 6 | 29-04-2009 23:04 | |
[решено] Работа с html-кодом страницы, поиск и копирование нужных строк | Sestrichka | AutoIt | 14 | 02-04-2009 16:51 | |
[решено] Поиск нужного текста в html коде страницы | ph0en1x | AutoIt | 8 | 16-02-2009 02:38 | |
Медиа - автозапуск html страницы с CD | WChek | Хочу все знать | 38 | 09-06-2008 15:23 |
|