Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Маленькие IE Context Menu Extensions

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
написал contextmenu extension для ИЕ для сохранения страницы в  mhtml (mht) формат. для использования нужна эта библиотека:
 
http://www.chilkatsoft.com/mht-activex.asp
 
в скрипт уже вставлен trial reset. т.к. библиотека не бесплатная, она добавляет ключи в реестр, через которые она контролирует, истекло ли демочное время. а так демо - полнофункциональна. trial reset сабрутина используется в виде wrapper-а, другими словами, trial ключи убираются автоматически из реестра перед и после каждого использования скрипта, можно пользоваться годами
 
если будете переписывать скрипт, с этой частью скрипта играться не советую, а то по незнанию ещё весь реестр удалите
 
да, я знаю, что эта функция странно написана, но это из за того, что производитель закодировал ключи в реестре и до них трудновато добраться, если точный путь указывать, vbscript путается
 

Код:
 
<SCRIPT LANGUAGE="VBSCRIPT">
 
sub trialreset()
'ON ERROR RESUME NEXT
 
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _  
strComputer & "\root\default:StdRegProv")
 
strKeyPath = "SOFTWARE\Chilkat Software, Inc."
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
strKeyPath2 = strKeyPath + "\" + subkey
strValueName = "Key30"
oReg.DeleteValue HKEY_LOCAL_MACHINE,strKeyPath2,strValueName
Next
 
secondpath = "SOFTWARE\Classes\WMZebra\CLSID"
oReg.EnumKey HKEY_LOCAL_MACHINE, secondpath, arrSubKeys2
For Each subkey2 In arrSubKeys2
secondpath2 = secondpath + "\" + subkey2
strValueName2 = "7832"
oReg.DeleteValue HKEY_LOCAL_MACHINE,secondpath2,strValueName2
Next
 
end sub
 
trialreset()
 
set mht = CreateObject("ChilkatMht.ChilkatMht")
mht.UnlockComponent "AnythingWorksFor30DayTrial"
'external.menuArguments.window.prompt mht.isunlocked
 
mht.proxy = "127.0.0.1:89" 'Set Proxy
mht.EmbedImages = 1
 
myURL=external.menuArguments.location.href
pagetitle = external.menuArguments.document.title
 
Dim fso, half
Set fso = CreateObject("Scripting.FileSystemObject")
half = fso.GetFileName(external.menuArguments.location.href)
'p=instrrev(myURL,"/")  
'half = right(myURL,len(myURL)-p)
if InStr(half,".") then
s=InStr(half,".") -1
filename = Left(half, s)
filename = Replace(filename, "%20", "_")
Else filename = ""
End If
 
Dim WshShell  
Set WshShell = CreateObject("WScript.Shell")  
Set objWshSpecialFolders = WshShell.SpecialFolders
Mydocs1=WshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal")
Mydocs2 = objWshSpecialFolders("MyDocuments")
 
 
if pagetitle > ""  then  
pagetitle = Replace(pagetitle, " ", "_")
pagetitle = Replace(pagetitle, "/", "_")
pagetitle = Replace(pagetitle, "\", "_")
pagetitle = Replace(pagetitle, ":", "_")
pagetitle = Replace(pagetitle, "|", "_")
pagetitle = Replace(pagetitle, "?", "_")
pagetitle = Replace(pagetitle, Chr(34), "_")
 
returntext = external.menuArguments.window.prompt ("Please provide the title" & vbCrLf & "(Empty Input or Cancel stop operation)",pagetitle)
 
Else returntext = external.menuArguments.window.prompt ("Please provide the title" & vbCrLf & "(Empty Input or Cancel stop operation)",filename)
End If
 
 
 
if returntext > ""  then  
 
mht.GetAndSaveMHT myURL, Mydocs2 + "\" + returntext + ".mht"
set mht = nothing
 
trialreset()
end if
 
</SCRIPT>
 

 

Код:
 
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Save2MHT]
"contexts"=hex:01
@="E:\\WINDOWS\\Web\\ChilkatMHT.html"
 

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 05:19 20-11-2006 | Исправлено: WRFan, 18:28 22-11-2006
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WRFan
Как заставить скрип работать?
После нажатия Enter в "Запросе сценария" ничего, кажется, не происходит. В Папке "Мои документы" нового файла не появляется (насколько я понял, по умолчанию всё в "Мои документы" должно сохраняться?). В качестве проски поставил свой порт HandyCache:  

Цитата:
mht.proxy = "127.0.0.1:80" 'Set Proxy  

Кстати, насколько я понимаю, эта прога не сохраняет Flash?

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 00:02 21-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подправил свой пост наверху, запостил новую версию скрипта. добавил trial reset функцию, чтобы demo время не истекало (в остальном ограничений нет). также добавил ещё несколько знаков, которые по виндовским стандартам не могут фигурировать в названиях файлов (вопросительный знак и т.д.). все недозволенные знаки и т.д. меняются автоматически на "_" знак
 
в основом предусматриваются следующие ситуации:
 
1) создание файла без названия (только .mht) - баг в библиотеке
2) создание файлов с недозволенными знаками в названии - программа этого так и так бы не дозволила, файл в конечном счёте бы не создался
 
popkov
 

Цитата:
Как заставить скрип работать?  
После нажатия Enter в "Запросе сценария" ничего, кажется, не происходит. В Папке "Мои документы" нового файла не появляется (насколько я понял, по умолчанию всё в "Мои документы" должно сохраняться?).  

 
да, файлы должны именно в my documents папке создаваться. я помоему допустил ошибочку при указывании на "my documents" папку - один back slash надо было ещё добавить:
 

Код:
 
mht.GetAndSaveMHT myURL, Mydocs2 + "\" + returntext + ".mht"
 

 
всё зависит от того, где mydocs папка находится, у меня это просто root папка E:\ партиции, поэтому у меня ошибка и не проявилась, т.к. в E:\ уже есть backslash, а если у кого Mydocs папка например в "E:\Copy", то тогда ещё слэш нужен в конце. поправил в моё посте наверху
 
 
если всё ещё не создаются, могут быть следующие причины:
 
1) для создания файла нужен login/pass. т.к. библиотека не использует куксы ИЕ, она не знает, какие данные задавать на страницах с логином. эти данные надо тогда в скрипте проставить в виде "properties", как здесь описано:
 
http://www.chilkatsoft.com/refdoc/xChilkatMhtRef.html#prop016
 
2) в названии файла фигурируют недозволенные знаки, вроде /,\,?,:
 
3) проблема с регистрацией - при проставлении забаненного ключа в скрипте файлы не создаются
 
4) trial время истекло.  
 
5) прокси неправильно проставлен. на сайте производителя написано, что библиотека автоматически перенимает прокси настройки браузера, фиг с два. их надо проставлять в скрипте.
 
6) локальные html файлы могут не сохраняться в mht при использовании remote proxy  и отключённом интернете
 
7) mht файл не может быть создан из за ошибок в сорс коде искомой страницы. такое случается и в самом ИЕ - браузер тогда пишет, "страница не может быть сохранена". обычно это связано с Iframe-ами и с css тэгами в сорс кодах. МС до сих пор не удосужились поправить эти баги
 
8) для работы нужна библиотека ChilkatMHT.dll, она должна быть зарегена в системе (regsvr32 ChilkatMHT.dll), нужен конечно Internet explorer и проинсталлированный Windows Scripting Host 5.6 (с оффсайта микрозофта)
 
все проблемы, кроме первой, в новой версии скрипта (см. наверху) решены, во всяком случае у меня работает.  
 

Цитата:
Кстати, насколько я понимаю, эта прога не сохраняет Flash?

 
да она в общем то нефига не сохраняет, но ИЕ тоже mht файлы плохо сохраняет. вообще то и ИЕ и эта библиотека должны например сохранять css файлы и картинки в локальный файл в виде бинерного кода, но они этого не делают, даром, что я проставил mht.EmbedImages = 1 в скрипт, поэтому часто при открытии локальных mht файлов, неважно чем созданных, некоторые элементы скачиваются с оффсайтов. все претензии к chilkat, микрозофту и всем другим фирмам, производящим mht сохранялки

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 06:06 22-11-2006 | Исправлено: WRFan, 06:51 22-11-2006
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WRFan
То есть, у программы по функциональности по сравнению со встроенной функцией IE никаких преимуществ нет?  
 
Почему-то с новой версией скрипта появляется сообщение об ошибке сценария:
Цитата:
Строка 13 символ 1 Объект не является семейством

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 15:37 22-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
То есть, у программы по функциональности по сравнению со встроенной функцией IE никаких преимуществ нет?  

 
преимущество в том, что быстрее добираться до функции через контекстное меню браузера, чем через file>save и т.д.
 

Цитата:
Строка 13 символ 1 Объект не является семейством  

 
это как то с WMI (Windows Management Instrumentation) связано. у меня такой ошибки нет. WMI служба включена?
попробуй
 

Код:
 
ON ERROR RESUME NEXT
 

 
добавить в начале скрипта

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 18:34 22-11-2006
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WRFan

Цитата:
это как то с WMI (Windows Management Instrumentation) связано. у меня такой ошибки нет. WMI служба включена?  

Включена

Цитата:
попробуй  
ON ERROR RESUME NEXT  
добавить в начале скрипта

Заработало!

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 19:30 22-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Заработало!

 
заработало то заработало, но это значит, что у тебя скрипт через trial reset функцию перепрыгивает, ключи из реестра не удаляет. тогда собственноручно удаляй:
 
HKEY_LOCAL_MACHINE\SOFTWARE\Chilkat Software, Inc.\ChilkatMHT
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WMZebra\CLSID\Q2hpbGthdE1IVA==
 
добавил наверху ещё одну строку к скрипту:
 

Код:
 
pagetitle = Replace(pagetitle, Chr(34), "_")
 

 
это чтобы кавычки в названии файла не фигурировали, тоже идёт в разрез с виндовскими стандартами.

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 19:41 22-11-2006
Loafer



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А такого расширения контекстного меню для IE, чтобы выделенный текст открыть как url в новой вкладке нет ?

----------
Никнейм зарегистрирован

Всего записей: 6541 | Зарегистр. 09-12-2001 | Отправлено: 19:18 23-11-2006
pop2ROOT



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Loafer
если не найдешь - попробуй Maxthon, там еще много удобных фич

----------
Купить биткоин, Ethereum и другие альткоины

Всего записей: 8945 | Зарегистр. 13-09-2004 | Отправлено: 19:29 23-11-2006
Loafer



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pop2ROOT
а ты думаешь откуда я узнал обэтой "фиче"
но мне надо чтобы такое же под авантом было

----------
Никнейм зарегистрирован

Всего записей: 6541 | Зарегистр. 09-12-2001 | Отправлено: 20:25 23-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Loafer
 
а почему именно в новой вкладке? чем старый добрый selsearch скриптик не устраивает, который по всему нету бегает?
 

Код:
 
<HTML>
<SCRIPT LANGUAGE="JavaScript" defer>  
var parentwin = external.menuArguments;
var doc = parentwin.document;
var sel = doc.selection;
var rng = sel.createRange();
var str = new String(rng.text);  
var op = new String ("http://www.google.com/search?hl=en&q="+ str);
if (str=="")
alert ("You must select some text to search for first.");
else
external.menuArguments.top.location.href = op
</SCRIPT>
</HTML>
 

 
появился кстати серийник для chilkat mht 5.0:
 

Код:
 
set mht = CreateObject("ChilkatMht.ChilkatMht")
mht.UnlockComponent("MHT_TALAUNGNpU8G")
 

 
это для моего скрипта наверху для сохранения в mht. качайте сам файл сейчас, пока не забанили. сорри, знаю, не тот форум

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 21:26 23-11-2006
Loafer



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WRFan
как я понял этот скрипт задает выделенный текст в поиск гугла
а мне бы выделенный текст открыть как урл в новом окне
или я не допонял ?
хотя сейчас минутку
вот это будет работать:

Цитата:
 
<HTML>  
<SCRIPT LANGUAGE="JavaScript" defer>  
var win = external.menuArguments;
if(win.document.selection.createRange().text) {  
 
var str = win.document.selection.createRange().text;
var reg=/\bhttp/  
var result=reg.test(str) ? "true" : "false"
if(result == "true")  
{
win.open(win.document.selection.createRange().text,'','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');
} else
{
win.open('http://' +win.document.selection.createRange().text,'','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');    
}
}
</SCRIPT>  
</HTML>
 
 

будет открывать выделенный текст как url в новой вкладке

----------
Никнейм зарегистрирован

Всего записей: 6541 | Зарегистр. 09-12-2001 | Отправлено: 08:15 24-11-2006 | Исправлено: Loafer, 09:31 24-11-2006
konik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WRFan

Цитата:
- Делаем из браузера Фотошоп (добавляем к contextmenu функции для работы с картинками):
 
http://membres.lycos.fr/julieborette/  
- А это для любого ИЕ пойдет? Или обязаельно не ниже 6?  
На 5,0 из комплекта вЫ98 пойдет?  

Всего записей: 697 | Зарегистр. 11-12-2004 | Отправлено: 05:47 25-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
http://membres.lycos.fr/julieborette/  
- А это для любого ИЕ пойдет? Или обязаельно не ниже 6?  
На 5,0 из комплекта вЫ98 пойдет?  

 
ну так попробуй нажать на кнопки на моей странице. если картинка изменится в твоей версии браузера, значит работает и можно и в контекстное меню добавлять. весь список графических эффектов кстати тута:
 
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/reference/reference.asp
 
я себе за последние годы ещё несколько добавил

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 13:32 25-11-2006
konik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ну так попробуй нажать на кнопки на моей странице. если картинка изменится в твоей версии браузера, значит работает и можно и в контекстное меню добавлять.  
к сожалению, облом-с. Ни огнелис, ни ИЕ не показали эффекта.  
 

Цитата:
я себе за последние годы ещё несколько добавил
наверно, остальные проверять также смысла не имеет?  
 

Всего записей: 697 | Зарегистр. 11-12-2004 | Отправлено: 17:42 25-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
наверно, остальные проверять также смысла не имеет?

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

Цитата:
Ни огнелис,  

понятное дело, кроме ИЕ ни один браузер эти функции не поддерживает. девелоперы лисы и оперы ещё и гордятся этим. у них там имхо чо то сдвинулось по фазе

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 18:29 25-11-2006
konik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
так поставь себе 6-ку, чего ты старую версию то используешь  
честно говря, 6 по сравнению с 5 просто дико тормознутая. Сам не пойму почему, но 5 летает шустро (только при проигрывании винампа может звук дребезжать начинать при тяжелой загрузке). А 6 шуршит-шуршит, какие-то подвисания всего делает (98вынь), короче, раза 3 в этом году пробовал ставить, ершил остановиться на огнелисе для навороченных сайтов и ие-5 для мало/без-скриптовых, если зачем-то потребуется.  
Да, сразу уточню: пробовал голый ие6, и 2 раза - с максудовским МДИЕКУ. Один фиг. тормоз перестройки. При том и места на винте отжирает раза в 3+ больше огнелиса.  

Цитата:
девелоперы лисы и оперы ещё и гордятся этим. у них там имхо чо то сдвинулось по фазе
мб.  
корпоративная солидарность в извращенной форме  

Всего записей: 697 | Зарегистр. 11-12-2004 | Отправлено: 19:10 25-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Internet Explorer Tools for Validating XML and Viewing XSLT Output:
 
http://www.microsoft.com/downloads/details.aspx?FamilyID=d23c1d2c-1571-4d61-bda8-adf9f6849df9&DisplayLang=en

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 03:20 29-11-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в связи с переходом на висту 64-бит пришлось переписывать мой скриптик для сохранения ИЕ страниц в mht формат. также несколько изменил мою предыдущую версию для х32-разрядных систем. накатал все скрипты тут:
 
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1266398&SiteID=1&mode=1
 
не хочу ещё раз писать, кого интересует, скопируйте скрипты с той страницы

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 16:03 24-02-2007 | Исправлено: WRFan, 16:06 24-02-2007
hedgehot



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А может кто поможет? Нужно сделать чтобы источники e2k ссылок проверялись.
идея такая. нужно сделать что-бы по нажатию по е2k ссылки в меню появилась надпись
"Проверка источников" и ссылка вставлялась в один из этих сайтов  
h**p://tothbenedek.hu/ed2kstats/
h**p://ed2kstats.power-portal.to/
В самом ослином кдиенте я добавил ссылку в таком виде:
h**p://ed2kstats.power-portal.to/ed2k.php?hash=ссылка

Всего записей: 60 | Зарегистр. 08-02-2002 | Отправлено: 01:44 18-04-2007 | Исправлено: hedgehot, 01:45 18-04-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Программы » Маленькие IE Context Menu Extensions


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru