Тема: AHK: Получить текст из тегов «title» выбранного CHM-файла
Есть ли возможность извлечь такой текст без преобразования CHM-файла в HTML?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Есть ли возможность извлечь такой текст без преобразования CHM-файла в HTML?
Вот хорошее описание формата. За 10 минут парсер не напишешь, поэтому готового решения ждать не советую.
Спасибо. А я было думал это через COM можно делать.
Спасибо. А я было думал это через COM можно делать.
Если AHK позволяет работать с COM, то вероятно, можно. Но я могу лишь привести примеры на VBS/JS.
1 способ) Создать объект InternetExplorer.Application, загрузить в него страницу из CHM и прочесть свойство Document.title. Недостатком этого сплсоба является, что будет производится полный разбор кода требуемой страницы для его отображения в невидимом окне IE, в частности будут исполняться или запрашиваться на исполнение все скрипты и элементы ActiveX со страницы.
2 способ) Использовать объект XmlHttpRequest:
url="mk:@MSITStore:D:\script56.chm::/html/vtoriMicrosoftWindowsScriptTechnologies.htm"
Set req = CreateObject("Microsoft.XMLHTTP")
req.open "GET", url, False
req.send
WScript.Echo req.responseTextПри этом, весьма вероятно, req.responseText будет в неправильной кодировке и понадобится его перекодировать, для чего, может быть, лучше использовать вместо него req.responseBody…
Однако ж, кроме АвтоХоткея еще много чего имеется!
Спасибо, добре!
На AHK:
URL := "mk:@MSITStore:" SubStr(A_AhkPath, 1, -3) "chm::/docs/AutoHotkey.htm"
req := ComObjCreate("Msxml2.XMLHTTP.6.0")
req.open("GET", URL, 0)
req.send
ResponseText := req.responseText
req := ""
MsgBox, % RegExReplace(ResponseText, "s).*?<title>(.*)?</title>.*", "$1")Добре. Ей-Богу, добре!
Пожелание по шестому посту наклюнулось: возможно ли обращаться к индексному HTML-файлу (основному), без явного указания его названия, как-то так:
URL := "mk:@MSITStore:" FilePath "::/*.*"
Если кодировка файла из URL — w1251, как можно перекодировать кириллический вывод в стандартный вид?
URL := "C:\WINDOWS\Help\Tours\htmlTour\connected_multiple.htm" ; ссылка для XP
req := ComObjCreate("Msxml2.XMLHTTP.6.0")
req.open("GET", URL, 0)
req.send
ResponseText := req.responseText
req := ""
MsgBox, % RegExReplace(ResponseText, "s).*?<title>(.*)?</title>.*", "$1")
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться