1

Тема: 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».

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