Что нового

Анализ прокрутки документа Word

Visors

Новичок
Сообщения
58
Репутация
0
Здравствуйте.
Нашел на форуме скрипт реагирования - на определенное положение бегунка прокрутки в определенном файле программы Эксель.

Пытался переделать этот скрипт, чтобы он работал в определенном документе Word.
Что-то не получается (видимо UDF Excel.au3 и Word.au3 сильно отличаются).

Название файла 154.doc
Бегунок имеет название Class: ScrollBar, Instance: 1

Код:
#include <UIAutomate.au3> ; http://autoit-script.ru/index.php/topic,16780.0.html
#include <Excel.au3>

$sFilePath = @ScriptDir & "\111.xls"
$oExcel = _Excel_Open()
$oBook = _Excel_BookOpen($oExcel, $sFilePath)
If @error Then Exit MsgBox(0, "", "Ошибка открытия файла")

$oParent = _UIA_GetElementFromHandle(ControlGetHandle("[class:XLMAIN]", "", "NetUIHWND4"))
If @error Then Exit MsgBox(0, "", "Не найден элемент прокрутки")

$oScrollBar = _UIA_GetControlTypeElement($oParent, "UIA_ScrollBarControlTypeId", "")
If @error Then Exit MsgBox(0, "", "Не найдена вертикальная прокрутка")

While Sleep(111)
  $iValue = _UIA_ElementGetPropertyValue($oScrollBar, "LegacyIAccessible.Value")
  ToolTip($iValue)
  If $iValue = 50 Then
    MsgBox(0, "", "Сообщение", 1)
    While Sleep(111)
      $iValue = _UIA_ElementGetPropertyValue($oScrollBar, "LegacyIAccessible.Value")
      ToolTip($iValue)
      If $iValue <> 50 Then ExitLoop
    WEnd
  EndIf
WEnd

А вот так выглядят мои наработки (которые не хотят работать)
Код:
#include <UIAutomate.au3> ; http://autoit-script.ru/index.php/topic,16780.0.html
#include <Word.au3>

$sFilePath = @ScriptDir & "\154.doc"
$oWord = _Word_Open()
$oBook = _Word_DocOpen($oWord, $sFilePath)
If @error Then Exit MsgBox(0, "", "Ошибка открытия файла")

$oParent = _UIA_GetElementFromHandle(ControlGetHandle("[class:OpusApp]", "", "ScrollBar"))
If @error Then Exit MsgBox(0, "", "Не найден элемент прокрутки")

$oScrollBar = _UIA_GetControlTypeElement($oParent, "UIA_ScrollBarControlTypeId", "")
If @error Then Exit MsgBox(0, "", "Не найдена вертикальная прокрутка")

While Sleep(111)
  $iValue = _UIA_ElementGetPropertyValue($oScrollBar, "LegacyIAccessible.Value")
  ToolTip($iValue)
  If $iValue = 50 Then
    MsgBox(0, "", "Сообщение", 1)
    While Sleep(111)
      $iValue = _UIA_ElementGetPropertyValue($oScrollBar, "LegacyIAccessible.Value")
      ToolTip($iValue)
      If $iValue <> 50 Then ExitLoop
    WEnd
  EndIf
WEnd

Подскажите - как выдавать сообщения (аналогичным с экселевским образцом способом) - при положении бегунка прокрутки 50% в файле 154.doc ?
 

Вложения

  • файлы.rar
    28.5 КБ · Просмотры: 2
  • Данные бегунка ворда.png
    Данные бегунка ворда.png
    14.1 КБ · Просмотры: 11

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
#include <UIAutomate.au3> ; http://autoit-script.ru/index.php/topic,16780.0.html
#include <Word.au3>

$sFilePath = @ScriptDir & "\154.doc"
$oWord = _Word_Create()
$oDoc = _Word_DocOpen($oWord, $sFilePath)
If @error Then Exit MsgBox(0, "", "Ошибка открытия файла")

$oScrollBar = _UIA_GetElementFromHandle(ControlGetHandle("154.doc", "", "ScrollBar1"))
If @error Then Exit MsgBox(0, "", "Не найден элемент прокрутки")

While Sleep(111)
  $iValue = _UIA_ElementGetPropertyValue($oScrollBar, "LegacyIAccessible.Value")
  ToolTip($iValue)
  If $iValue = 50 Then
    MsgBox(0, "", "Сообщение", 1)
    While Sleep(111)
      $iValue = _UIA_ElementGetPropertyValue($oScrollBar, "LegacyIAccessible.Value")
      ToolTip($iValue)
      If $iValue <> 50 Then ExitLoop
    WEnd
  EndIf
WEnd
 
Автор
V

Visors

Новичок
Сообщения
58
Репутация
0
Заработало.
Огромное спасибо.
 
Верх