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

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

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

Widok (31-03-2008 14:47): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

ViSiToR



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


Код:
 
If $CmdLine[1] = "/SpellWord" Then
    WinSetState($hWndOpera, "", @SW_DISABLE)
    $LangVal = "1049"
    $ReadLangVal = IniRead($ConfigFile, "Prefs", "SpellCheck Lang", "")
    If $ReadLangVal = "Eng" Then $LangVal = "1033"
    If $ReadLangVal = "Ukr" Then $LangVal = "1058"
    If $ReadLangVal = "Bel" Then $LangVal = "1059"
    
    $OldClip = ClipGet()
    
    ClipPut("")
    Send("^{INSERT}")
    $ClipContent = ClipGet()
    
    If $ClipContent <> "" Then
        $BeginSpace = _StringGetSpace($ClipContent, 1)
        $EndSpace = _StringGetSpace($ClipContent, -1)
        
        _SpellCheckProc($LangVal)
        If Not @error Then
            $SELECTION = StringStripWS(ClipGet(), 3)
            If $SELECTION <> StringStripWS($ClipContent, 3) Then
                $SELECTION = $BeginSpace & $SELECTION & $EndSpace
                ClipPut($SELECTION)
                
                WinActivate($hWndOpera)
                WinSetState($hWndOpera, "", @SW_ENABLE)
                WinWaitActive($hWndOpera, "", 3)
                Send("+{INSERT}")
            Else
                _MsgBox(64, $ScriptName, $MsgBox[87], $hWndOpera)
            EndIf
        Else
            _MsgBox(262144+48, $ScriptName & " - " & $MsgBox[34], $MsgBox[56] & @LF & "Word", $hWndOpera)
        EndIf
    Else
        _MsgBox(48, $ScriptName & " - " & $MsgBox[34], $MsgBox[88], $hWndOpera)
    EndIf
    
    WinActivate($hWndOpera)
    WinSetState($hWndOpera, "", @SW_ENABLE)
    ClipPut($OldClip)
    Exit
EndIf
 

 
Сама функция _SpellCheckProc():
 

Код:
Func _SpellCheckProc($Language)
    Local $Code = ""
    $Code &= 'On error resume next' & @CRLF
    $Code &= 'CheckSpell()' & @CRLF
    $Code &= 'Function CheckSpell()' & @CRLF
    $Code &= '    Set Word = CreateObject("word.Application")' & @CRLF
    $Code &= '    Word.WindowState = 2' & @CRLF
    $Code &= '    Word.Visible = False' & @CRLF
    $Code &= '    Set Doc = Word.Documents.Add( , , 1, True)' & @CRLF
    $Code &= '    Word.Selection.Paste' & @CRLF
    $Code &= '    If err = 0 Then' & @CRLF
    $Code &= '        Word.Selection.LanguageID = ' & $Language & @CRLF
    $Code &= '        Set Range = Word.ActiveDocument.Range(0, Word.Selection.End)' & @CRLF
    $Code &= '        If Not Word.CheckSpelling(Range) Or Not Word.CheckGrammar(Range) Then' & @CRLF
    $Code &= '            If Err.Number = 0  Then' & @CRLF
    $Code &= '                Doc.CheckGrammar' & @CRLF
    $Code &= '            Else' & @CRLF
    $Code &= '                Doc.CheckSpelling' & @CRLF
    $Code &= '            End If' & @CRLF
    $Code &= '        End If' & @CRLF
    $Code &= '        Word.Selection.WholeStory' & @CRLF
    $Code &= '        Word.Selection.Copy' & @CRLF
    $Code &= '    End If' & @CRLF
    $Code &= '    Doc.Close False' & @CRLF
    $Code &= '    Word.Application.Quit True' & @CRLF
    $Code &= 'End Function' & @CRLF
    
    $WordObjErr = ObjEvent("AutoIt.Error", "SpellCheckErrFunc")
    Local $VbsObj = ObjCreate("ScriptControl")
    If @error Then Return SetError(1, 0, -1)
 
    $VbsObj.Language = "vbscript"
    $VbsObj.AddCode($Code)
EndFunc

 
Функция SpellCheckErrFunc() пуста, это чтобы скрипт не выпадал с фатальной ошибкой при случае не установленного объекта (Word).
 
P.S
Значения для MsgBox'ов соответствуют файлу перевода MultiAC_Lang.lng - т.е цифра (элемент) в массиве соответствует цифре перевода в файле.

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:27 29-07-2007 | Исправлено: ViSiToR, 03:22 31-07-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Opera AC
Widok (31-03-2008 14:47): лимит страниц. продолжаем здесь


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru