Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь, помимо прочего, можно обсудить программу AutoHotkey и проблемы её использования)

 


Назначение программы

[в начало]

	
	-----------------------------------------------------------------------------------------------------------------------------------------------
	 В ходе движения по пространству Интернета, возникает вопрос: каким образом обработать, систематизировать и 
	 упорядочить историю серфинга в  целях сохранения ссылок на ресурсы содержащие значимую информацию
	 с возможностью немедленного перехода?
 
	 Каков смысл тратить  время и деньги занимаясь повторным исследованием результатов поисковой машины в надежде 
	 увидеть ресурс который когда-то был посещен, но адрес давно забыт или утрачен?.. Известные браузеры лишь 
	 частично решают задачу, ведя протокол истории и поддерживая Избранное. 

	 Такой Java-скрипт, вставленный в HTML-код произвольной страницы, просматривает все её ссылки и выводит их 
	 описание в окне сообщения порциями по пять штук (проверено на Opera 5.02, IE 5.0):

	
	
	<SCRIPT>
	//Анализ гиперссылок текущей страницы
	var linkLength;
		var linkHost;
		var linkHref;
		var linksStr;
		var winDoc;

		GetHyperlinks()

		function GetHyperlinks()
		{
		    winDoc=window.document;
		    linkLength=winDoc.links.length;
		    alert("Количество найденных гиперссылок: " +linkLength);
		    i=0
		    for (j=0;j<linkLength;j++)
		    {
		        linkHost=document.links.item(j).host;
		        linkHref=document.links.item(j).href;
		        linkX=document.links.item(j).innerText;
		        linksStr+=j+"_"+linkHost+" "+linkHref+"\n"
		        if (i==5||linkLength-1==j)
		        {
		            i=0;
		            if (confirm(linksStr)==0){return 0}
		            linksStr=0
		        }
		        i+=1
		    }
		}
	</SCRIPT>
	
	
	 В качестве систематического решения представлена скрипт-утилита "Анализ гиперссылок", предназначенная  
	 для  систематизации  гиперссылок оффлайновых Web-страниц на локальном компьютере и выполненная на
	 скриптовом языке AutoIt v3.1.1.127. Скриптовое приложение ищет оффлайновые страницы в пределах заданного 
	 каталога или диска, последовательно осматривает каждую страницу в поисках ссылок на удаленные узлы, а затем 
	 добавляет обнаруженные ссылки в локальную базу данных.

	 Далее ведется работа с базой данных, которая предусматривает: просмотр списка найденных среди гиперссылок 
	 удаленных узлов и соответствующих относительных путей, с возможностью фильтрации и поиска; загрузку файлов 
	 по протоколу HTTP или FTP; переход на заданную страницу; работу с портом в командном режиме. Также 
	 предусмотрена возможность выбора отдельной оффлайн Web-страницы или группы страниц с целью их последующего 
	 осмотра на предмет удаленных ссылок. Программа использует прямое соединение с локальной базой данных 
	 Access 4.x построенное на вызовах ODBC API 3.51 (ODBC API способны быстро и надежно обеспечить создание 
	 больших по размеру баз) и фактически является локальной поисковой псевдомашиной.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	 Требования:
	 ОС Windows 98/Me/XP; Internet Explorer v5.0 и выше; 
	 Интерфейс доступа к данным ODBC API 3.51 и выше.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	 Среда разработки:   	AutoIt 3.1.1.127 beta
	-----------------------------------------------------------------------------------------------------------------------------------------------
	

Версии для скачивания

[в начало]


	-----------------------------------------------------------------------------------------------------------------------------------------------
	  Версия 1.0 beta
		
		  [скачать скрипт программу] (270 044 байт)
		
		  [скачать исходник] (43 572 байт)
		

	Версия 1.0 beta более не является актуальным продуктом.

	-----------------------------------------------------------------------------------------------------------------------------------------------
	  Версия 2.0 beta

		  [скачать скрипт программу] (464 394 байт)
		
	В версии 2.0 beta произошли некоторые изменения, которые являются своеобразной альтернативой методов 
	и алгоритмов примененных в версии 1.0 beta

	Изменился метод просмотра гиперссылок в отдельной странице. Теперь,вместо функций MS HTML Library, 
	используется анализ текста HTML-страницы с помощью регулярных выражений, поэтому объект Shell.Explorer 
	исключен.

	Изменился алгоритм поиска файлов. Теперь, вместо последовательного перебора всех файлов с помощью 
	Shell.Application, используется более целенаправленный поиск построенный на совместном использовании 
	объекта FileSystemObject и встроенных функций AutoIt.

	Изменился способ перехода по ссылке-теперь ссылка открывается в обозревателе зарегистрированном в вашей
	системе по умолчанию, с помощью вспомогательной htm странички, которая динамически генерируется, открывается
	и перенаправляет обозреватель на нужный адрес.
	
	Изменен интерфейс-внедрены новые классы элементов: строка состояния и панель инструментов с кнопками, 
	реализованные на Win32 API; изменилось оформление главного окна.

	Изменился механизм обработки сообщений от окна. Новый механизм не использует режим событий и построен на 
	обработке сообщения WM_COMMAND для меню и кнопок панели инструментов и обработке возвращаемого значения 
	функции GUIGetMsg для всех остальных элементов формы. Такой подход позволяет более рационально использовать 
	ресурсы процессора.
		
	ODBC API привод базы данных значительных изменений не претерпел.

	Изменился способ инсталляции программы - теперь установка программы основана на совместном использовании 
	au3 скрипта запускаемого через исполняемый файл программы; JScript и объектов Automation; INF-скрипта 
	расширенного формата(Advanced Inf). Такой подход позволяет "стандартизировать" установку, используя 
	встроенные возможности операционной системы вместо специальной программы-инсталлера.

	-----------------------------------------------------------------------------------------------------------------------------------------------
	  Версия 2.1 beta

		  [скачать скрипт программу] (449 654 байт)
		
	В версию 2.1 beta добавлен механизм оптимизации базы данных, вызванный необходимостью удалять одинаковые 
	избыточные записи появляющиеся в ходе сканирования ссылок. Такие записи, соответствующие одинаковым ссылкам
	в разных документах, значительно увеличивают размер базы и время выборки данных.

	Реализация механизма осуществлена примерно следующим образом:

	1]	При добавлении новой ссылки в базу данных,расчитывается
		и записывается в ключевое поле уникальный строковый 
		хэш-индекс ссылки, построенный на оригинальном алгоритме.

	2]	С помощью запроса содержащего DISTINCT и INTO создается
		таблица уникальных индексов, которая служит ключом
		для дальнейшей оптимизации.

	Одновременная обработка нескольких таблиц вызвала необходимость в применении нескольких операторных 
	дескрипторов(множественные hstmt).

	Также добавлена возможность изменения цвета главного окна по усмотрению пользователя.

	Во всем остальном 2.1 beta практически полностью соответствует версии 2.0 beta.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	  Версия 2.1.0.1 beta

		  [скачать скрипт программу] (415 926 байт)
		
		
	В версии 2.1.0.1 beta устранена ошибка возникающая в ODBC при добавлении ссылок значительной длины.
	
	Добавлена возможность перетаскивания файлов и папок в область окна приложения методом Drag & Drop. В 
	случае перетаскивания отдельной оффлайн страницы, она будет просмотрена на предмет гиперссылок, а в 
	случае перетаскивания папки - будут просмотрены все найденные в ней оффлайн страницы.
	
	В качестве контейнера ресурсов программы используется отдельная библиотека, что значительно удобнее 
	хранения ресурсов в виде разрозненных файлов.

	Для просмотра справочной информации задействован Internet Explorer, способный извлекать HTML страницы 
	из библиотек ресурсов.

	Также несколько оптимизированы инсталляционный и удаляющий скрипты.
	
	-----------------------------------------------------------------------------------------------------------------------------------------------
	  Версия 2.1.2.0 beta

		  [скачать скрипт программу] (349 988 байт)
		
	В версию 2.1.2.0 beta включен механизм просмотра оффлайновых страниц с помощью скрытого объекта 
	Internet Explorer (аналогично версии 1.0). Таким образом в скрипт-программе теперь присутствуют два
	механизма анализа страниц:

	1) С помощью регулярных выражений. Позволяет получить большую
	   скорость обработки страниц, по сравнению с применением объекта 
	   Internet Explorer.

	2) С помощью скрытого объекта Internet Explorer. Позволяет получить 
	   лучшее качество обработки страниц, по сравнению с применением 
	   регулярных выражений.

	Применение объекта Internet Explorer повлекло добавление возможности подавления исполняющего ядра 
	JavaScript, с целью блокировки скриптов содержащихся в просматриваемых страницах.

	Добавлена возможность скрытия/отображения окна приложения через меню трея - при длительной работе 
	скрипт-программы можно скрыть её окно и перейти в фоновый режим. Также меню трея позволяет завершать 
	работу программы, независимо от состояния её исполнения.
	
	Решена небольшая проблема с длинными/короткими именами возникавшая при сжатии базы данных, в предыдущих 
	версиях.

	Оптимизирован механизм распаковки сжатых страниц, с помощью архиватора WinRar.

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

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

	Исправлены некоторые другие мелкие неточности.

	При использовании для просмотра страниц скрытого объекта Internet Explorer, скрипт-программа вполне 
	способна проверять страницы в каталогах компьютера локальной сети, а также создавать, пополнять и сжимать 
	там базу данных.
	-----------------------------------------------------------------------------------------------------------------------------------------------


Руководство к использованию(версия 2.1.2.0 beta)

[в начало]

Чтобы получить контекстную справку, после запуска скрипт-программы,

наведите курсор на интересующий вас элемент и щелкните правой кнопкой мыши.

	-----------------------------------------------------------------------------------------------------------------------------------------------
	При первом запуске утилита подключится к демонстрационной базе данных. Начните работу с выбора механизма 
	просмотра ссылок путем проставления флажков:

	 Использовать регулярные выражения

	или

	 Использовать Internet Explorer
	-----------------------------------------------------------------------
	Во втором случае, можно заблокировать выполнение Java-скриптов в просматриваемых страницах включив флажок:
	
		 Подавлять Java Script

	при этом исполняющее ядро JavaScript JSCRIPT.DLL будет временно перемещено в каталог программы, что сделает 
	невозможным выполнение скриптов на клиентских страницах. Используйте эту возможность с осторожностью.
	
	Эту опцию нежелательно использовать при установленной антивирусной программе которая автоматически проверяет
	скрипты клиентских HTML страниц, при открытии страницы в Internet Explorer.
	
	-----------------------------------------------------------------------
	Далее выберите пункт меню
	
		 Анализ гиперссылок-Сканировать пространство каталога

	Появившееся дерево выбора папок позволит вам выбрать начальный каталог поиска. Далее начнется 
	поиск оффлайновых страниц в пределах этого каталога - текущий результат поиска будет отображаться 
	в строке состояния. Затем каждая найденная страница будет просмотренна скрипт-программой и 
	проанализирована соответствующим механизмом. Все ссылки на удаленные узлы, которые содержатся 
	в этой странице будут добавлены в базу данных. Этот процесс сопровождается пояснительной информацией 
	в строке состояния, а также индикацией прогресс-баров. Процесс может продолжаться длительное время. 
	-----------------------------------------------------------------------
	Чтобы остановить процесс поиска HTML страниц нажмите 

		 ESC или крайнюю правую кнопку "Прервать" панели инструментов

	-----------------------------------------------------------------------
	Включение флажка 

		 Распаковывать сжатые HTML страницы

	активирует проверку HTML файла на архив содержащий страницу и извлечение этой страницы в каталог 
	временных файлов, с последующим анализом.
	-----------------------------------------------------------------------
	В качестве альтернативы используйте меню

		  Анализ гиперссылок-Сканировать группу документов

	чтобы скрипт-программа провела анализ заданного набора оффлайновых страниц, или перетащите единичный 
	файл или папку в область окна программы методом Drag & Drop.
	-----------------------------------------------------------------------
	Чтобы остановить процесс просмотра HTML страниц нажмите 
		
		 ESC или крайнюю правую кнопку "Прервать" панели инструментов

	-----------------------------------------------------------------------------------------------------------------------------------------------
	После завершения процесса сбора ссылок, выберите

		 Анализ гиперссылок-Показать список узлов

	чтобы отобразить список найденных среди гиперссылок удаленных узлов. Появившееся поле ввода позволит 
	указать фильтр выбора. Например если вы укажете "nasa", то будет показаны все адреса удаленных узлов 
	содержащие эту строку. Чтобы остановить вывод списка нажмите 

		 ESC или крайнюю правую кнопку "Прервать" панели инструментов
	-----------------------------------------------------------------------
	Для быстрого поиска по списку используйте поле быстрого поиска. Если искомая строка присутствует
	в списке хостов то соответствующий адрес будет выделен. Чтобы добавить новый узел выберите 

		 Анализ гиперссылок-Добавить узел
	-----------------------------------------------------------------------
	Чтобы удалить узел выберите  

		 Анализ гиперссылок-Удалить узел

	либо выберите узел в списке и нажмите 

		 CTRL+DEL
	-----------------------------------------------------------------------
	Чтобы добавить ссылку для текущего узла выберите

		  Анализ гиперссылок-Добавить ссылку
	-----------------------------------------------------------------------
	Включите флажок 

		 Загружать список относительных путей

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

		 Интернет-Перейти по адресу 
	-----------------------------------------------------------------------
	Если ссылка в адресной строке указывает на файл, то выбор меню 

		 Интернет-Получить файл

	позволит скачать этот файл стандартными средствами AutoIt. Перед этим не забудьте проверить
	удаленное соединение.
	-----------------------------------------------------------------------
	Заголовок списка относительных путей состоит из двух частей:

		 Относительный путь и Описание

	Щелчок по этим частям заголовка позволяет осуществить глобальный поиск в базе. Будет показано 
	поле ввода в которое надо ввести критерий поиска. Такой критерий может быть множественным. 
	Например чтобы найти все относительные пути связанные с марсианским аппаратом Nasa MRO укажите
	строку, разделяя отдельный критерий с помощью символа ";" т.е. "nasa;marsprogram;mro;", что 
	равносильно "nasa AND marsprogram AND mro". Если такая информация будет найдена среди 
	гиперссылок то она отобразится списке.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Чтобы выбрать базу данных щелкните 

		 База данных-Выбрать базу данных

	Если указанная вами база не существует то будет создана новая пустая база.
	----------------------------------------------------------------------- 
	Для оптимизации базы,путем удаления одинаковых избыточных записей не несущих в себе информационной
	нагрузки, выберите

		 База данных-Оптимизировать текущую базу данных
	
	Стоит отметить,что процесс оптимизации может занять длительное время.
	-----------------------------------------------------------------------
	Чтобы остановить процесс оптимизации базы нажмите 
		
		 ESC или крайнюю правую кнопку "Прервать" панели инструментов
	-----------------------------------------------------------------------
	Неоправданное увеличение базы, также может быть вызвано ненужными буферными областями,
	возникающими в ходе транзакций. Чтобы избавиться от таких областей, рекомендуется периодически
	производить сжатие базы

		 База данных-Сжать текущую базу данных
	-----------------------------------------------------------------------
	Для резервирования используйте

		 База данных-Резервировать текущую базу данных
 
	Даже в сжатом виде размер базы и количество находящихся в ней записей могут быть внушительными, 
	что затруднит доступ к базе. Поэтому рекомендуется чтобы размер отдельной базы данных в сжатом 
	и оптимизированном виде не превосходил 1-1.5 Mb. 
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Щелчок меню

		 Интернет-Работать с TCP портом

	переводит программу в Telnet-подобный режим работы с портом. Telnet-подобная работа 
	с TCP портом является дополнительной, скорее экспериментальной чем штатной возможностью 
	предоставляемой программой "Анализ гиперссылок".

	С помощью этого режима, можно как минимум определить поддерживает ли удаленный узел соединение по 
	тому или иному порту.

	Как максимум - зная команды заданного порта непосредственно работать с ним.

		---------------------------------------------------------------------------------------------------------------------------------------
		Работа с почтовым сервером.
		---------------------------------------------------------------------------------------------------------------------------------------
		Выберите меню 
		
			 Интернет-Работать с TCP портом
		
		В появившемся окне запроса введите имя узла-например pop.mail.ru
		Далее укажите номер порта - 110.
		Дождитесь установки соединения - должно появится окно протокола
		примерно с таким сообщением:
		-----------------------------------------------------------------------
		
		16.09.2007:23.01.52
		Открытие TCP сокета
		Хост pop.mail.ru;Порт 110
		+OK 
		
		-----------------------------------------------------------------------
		Далее осталось отправлять команды с помощью кнопки

			 Отправить команду

		и следить за ответом сервера:

		
		/Имя пользователя/
		команда: user [username]		
		ответ	+OK Password required for user [username]

		/Пароль/
		команда: pass [password]
		ответ	+OK [username]@mail.ru maildrop has 4 messages (230400 octets)

		/Список сообщений/
		команда: list	
		ответ	+OK 4 messages (230400 octets)

		1 1503
		2 223774
		3 1756
		4 3153
		.
		
		/Размер почтового ящика/
		команда: stat
		ответ	+OK 4 230400

		/Получить сообщение №1/
		команда: retr 1
		ответ	+OK 1503 octets

		Return-path: <[......]58@bk.ru>
		Received: from [85.141.228.182] (port=49035 helo=alex)
			by mx34.mail.ru with esmtp 
			id 1Ifhte-000OIa-00
			for [username]@mail.ru; Thu, 11 Oct 2007 00:11:10 +0400
			From: "Vasya" <[......]58@bk.ru>
			To: "'Lesha'" <[username]@inbox.ru>
			Subject: RE: .....
			Date: Thu, 11 Oct 2007 00:12:44 +0400
			MIME-Version: 1.0
			Content-Type: text/plain;
			charset="koi8-r"
			X-Mailer: Microsoft Office Outlook, Build 11.0.5510
			Thread-Index: AcgLc5/J/QBN5HvJRUOSY5HO7HcGpAABjZmg
			In-Reply-To: 
			X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138
			Message-Id: 
			Content-Transfer-Encoding: base64

		[--Далее следует текст сообщения--]
		.
		
		/Удалить сообщение №1/
		команда: dele 1
		ответ	+OK message 1 deleted

		/Список сообщений/
		команда: list
		ответ	+OK 3 messages (228352 octets)

		2 223774
		3 1756
		4 3153
		.
		
		/Завершение сеанса работы/
		команда: quit
		ответ	+OK POP3 server at mail.ru signing off
		
		---------------------------------------------------------------------------------------------------------------------------------------
		Для выхода из Telnet-подобного режима еще раз выберите меню
	
			 Интернет-Работать с TCP портом
		
		При необходимости сохраните полученный протокол. Аналогичным образом можно работать с 
		другими портами зная набор их команд.

	-----------------------------------------------------------------------------------------------------------------------------------------------
		 Панель инструментов

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

		 Свернуть

	чтобы вновь отобразить выберите

		 Восстановить

	Такая возможность хороша для перевода программы в скрытый режим если просмотр
	страниц или оптимизация базы данных занимает длительное время.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Кнопка 

		 Выход

	а также соответствующий пункт трей-меню, завершают работу "Анализ гиперссылок".
	-----------------------------------------------------------------------------------------------------------------------------------------------

Установки реестра(версия 2.1.2.0 beta)

[в начало]

	
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Изменение установок реестра позволяет настраивать программу и устранять возможные неполадки.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	  Раздел [HKEY_LOCAL_MACHINE\Software\HyperlinkScanner212\Settings]
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Путь к файлу базы данных Access 4.x:
	
	Параметр "DataSourceDestination"="C:\Program Files\Hyperlink Scanner 2.1.2.0 beta\quark.mdb", строковый.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	В одну строку, дополнительные параметры подключения к базе данных. Если параметр ConnectionString
	удалить из реестра, то подключение будет создано по умолчанию.

	Параметр "ConnectionString" = 	"Pwd=;ExtendedAnsiSQL=0;FIL=MS Access;ImplicitCommitSync=Yes;
			    		"MaxBufferSize=2048;"MaxScanRows=5;PageTimeout=5;ReadOnly=0;
			    		"SafeTransactions=0;Threads=3;UserCommitSync=Yes",
	строковый.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Длина текстового буфера приема данных при работе с портом:
	
	Параметр "bufferlen"="1024", строковый, по умолчанию 1024.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Количество попыток чтения буфера приема данных при работе с портом:

	Если после этого количества запросов к серверу, удаленный компьютер
	не ответит, значит сеанс считается прерванным.

	Параметр "responceLoop"="50", строковый, по умолчанию 50.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Время ожидания формирования ответа удаленного компьютера при работе с портом, мс:

	Это минимальная задержка необходимая, чтобы сервер сформировал ответ.
	Если задержка отсутствует - возникнут ошибки.

	Параметр "waitResponce"="500", строковый, по умолчанию 500.
	-----------------------------------------------------------------------------------------------------------------------------------------------
	Команда GUI WinRar для извлечения сжатых HTML страниц:
	
	Параметр "extractCommand"=" x -c- -inul -o+ ", строковый.
	----------------------------------------------------------------------------------------------------------------------------------------------- 

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.