Тема: VBScript: сохранить выделенный в Internet Explorer текст в файл
Скрипт для быстрого сохранения выделенного на HTML-странице текста в файл, добавляет в контекстное меню Internet Explorer команду "Сохранить выделенный текст в файл". Что-то типа копилки: выделенный текст сохраняется в C:\Documents and Settings\***\Рабочий стол\SaveIESelectedText.txt путём дописывания этого файла. Перед каждым фрагментом вставляется секция заголовка с указанием даты, URL, заголовка страницы и запрашиваемого в момент сохранения комментария.
C:\Program Files\SaveIESelectedText\SaveIESelectedText.htm
<HTML>
<HEAD>
<TITLE>Save IE selected text</TITLE>
<SCRIPT language="VBScript">
Const strBaseRegKey = "HKEY_CURRENT_USER\Software\SaveIESelectedText\"
Dim objWshShell
Dim objFSO
Dim objTS
Dim strURL
Dim strTitle
Dim strSelectedText
Dim strLastURL
Dim boolUseDescription
Dim strPath
Dim strDescription
With window.external.menuArguments.document
strURL = .URL
strTitle = .Title
strSelectedText = Trim(.selection.createRange().text)
End With
If Len(strSelectedText) <> 0 Then
Set objWshShell = CreateObject("WScript.Shell")
On Error Resume Next
strLastURL = objWshShell.RegRead(strBaseRegKey & "LastURL")
If Err.Number <> 0 Then
Err.Clear
strLastURL = ""
End If
boolUseDescription = CBool(objWshShell.RegRead(strBaseRegKey & "UseDescription"))
If Err.Number <> 0 Then
Err.Clear
boolUseDescription = True
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPath = objWshShell.ExpandEnvironmentStrings(objWshShell.RegRead(strBaseRegKey & "Path"))
If Err.Number <> 0 Then
Err.Clear
strPath = objFSO.BuildPath(objWshShell.SpecialFolders("Desktop"), "SaveIESelectedText.txt")
End If
On Error Goto 0
Set objTS = objFSO.OpenTextFile(strPath, 8, True)
With objTS
If strURL <> strLastURL Then
.WriteLine
.WriteLine String(79, "=")
.WriteLine vbTab & Now()
.WriteLine vbTab & strURL
.WriteLine vbTab & strTitle
objWshShell.RegWrite strBaseRegKey & "LastURL", strURL, "REG_SZ"
If boolUseDescription Then
strDescription = window.prompt("Введите описание:", Trim(window.clipboardData.getData("Text")))
If Len(strDescription) <> 0 Then
.WriteLine vbTab & strDescription
End If
End If
.WriteLine String(79, "=")
Else
.WriteLine String(79, "-")
End If
.Write strSelectedText
.WriteLine
.Close
End With
Set objTS = Nothing
Set objFSO = Nothing
Set objWshShell = Nothing
Else
window.alert "Нет выделения"
End If
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Установить в контекстное меню IE (SaveIESelectedTextOn.reg):
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Сохранить выделенный текст в файл]
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Сохранить выделенный текст в файл]
@="C:\\Program Files\\SaveIESelectedText\\SaveIESelectedText.htm"
"Flags"=dword:00000000
"Contexts"=dword:00000011
Удалить из контекстного меню IE (SaveIESelectedTextOff.reg):
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Сохранить выделенный текст в файл]
Настройки, которые берутся из ветки реестра HKEY_CURRENT_USER\Software\SaveIESelectedText (если они там есть):
LastURL (REG_SZ)
UseDescription (REG_DWORD)
Path (REG_EXPAND_SZ)
Автор скрипта - alexii.
Отдельное спасибо wisgest за исправление ошибки с неправильным формированием пути к файлу «SaveIESelectedText.txt».
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.