Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Adobe FrameMaker - поиск и применение определенного стиля (http://forum.oszone.net/showthread.php?t=158680)

Vadikan 30-11-2009 11:59 1283211

Adobe FrameMaker - поиск и применение определенного стиля
 
Вложений: 1
Всем привет!

Опять обращаюсь к вам с просьбой автоматизировать FrameMaker :) Задача в том, чтобы найти все фрагменты текста, имеющие определенный стиль и применить его заново. Критерий поиска уже задан, последовательность действий такова:

Нажать Find в окне поиска (фокус перемещается в документ)
Перейти в список f Catalog и выбрать там Link (применяется стиль, фокус остается в документе)
Активировать окно поиска, снова нажать Find и т.д.

Поскольку поиск Framemaker не умеет останавливаться в конце документа, прерывание операции нужно предоставить пользователю - как обычно, пауза или выход из скрипта. Но нужно ограничить кол-во операций в секунду, чтобы хотя бы по полосе прокрутки FrameMaker можно было судить, закончен один "круг" замен или нет. Например, 4 замены в секунду.

Я честно попытался сам. Нажатие в списке я сделал ControlCommand($sTitle2, $sText, "ListBox1", "SelectString", "Link"), но почему-то не получилось выполнить поиск. Ощущение, что кнопка Find отдельно от окна существует :)

Информация об окнах:

читать дальше »
Окно Find/Change
Код:

>>>> Window <<<<
Title:        Find/Change
Class:        #32770
Position:        727, 143
Size:        525, 204
Style:        0x14C800C4
ExStyle:        0x00010101
Handle:        0x00020A66

>>>> Control <<<<
Class:       
Instance:       
ClassnameNN:       
Advanced (Class):       
ID:       
Text:       
Position:       
Size:       
ControlClick Coords:       
Style:       
ExStyle:       
Handle:        0x000209AA

>>>> Mouse <<<<
Position:        816, 165
Cursor ID:        0
Color:        0x080C13

>>>> StatusBar <<<<

>>>> Visible Text <<<<
Find
Text:
C&onsider Case
&Whole Word
&Use Wildcards
Find &Backward
Change
To Text:
C&lone Case
Look in:
Boo&k
&Document
&Selection
&Find
&Change
C&hange && Find
Change &All
Find/Change


>>>> Hidden Text <<<<

Кнопка Find

Код:

>>>> Window <<<<
Title:        Find/Change
Class:        #32770
Position:        727, 143
Size:        525, 204
Style:        0x14C800C4
ExStyle:        0x00010101
Handle:        0x00020A66

>>>> Control <<<<
Class:        Button
Instance:        9
ClassnameNN:        Button9
Advanced (Class):        [CLASS:Button; INSTANCE:9]
ID:        100
Text:        &Find
Position:        165, 141
Size:        81, 21
ControlClick Coords:        57, 19
Style:        0x50030000
ExStyle:        0x00000004
Handle:        0x000209CC

>>>> Mouse <<<<
Position:        952, 332
Cursor ID:        0
Color:        0x000000

>>>> StatusBar <<<<

>>>> Visible Text <<<<
Find
Text:
C&onsider Case
&Whole Word
&Use Wildcards
Find &Backward
Change
To Text:
C&lone Case
Look in:
Boo&k
&Document
&Selection
&Find
&Change
C&hange && Find
Change &All
Find/Change


>>>> Hidden Text <<<<

Окно f Catalog
Код:

>>>> Window <<<<
Title:        f Catalog
Class:        #32770
Position:        1042, 411
Size:        125, 335
Style:        0x14CC0044
ExStyle:        0x00010101
Handle:        0x001C0654

>>>> Control <<<<
Class:       
Instance:       
ClassnameNN:       
Advanced (Class):       
ID:       
Text:       
Position:       
Size:       
ControlClick Coords:       
Style:       
ExStyle:       
Handle:        0x0002063E

>>>> Mouse <<<<
Position:        1092, 430
Cursor ID:        0
Color:        0x080C13

>>>> StatusBar <<<<

>>>> Visible Text <<<<
&Delete...


>>>> Hidden Text <<<<


Vadikan 01-12-2009 15:54 1284253

Спасибо за молчание, вынудившие меня залезть в доки :)

Код:

$sTitle = "[CLASS:FrameFamily7.0MdiFrame;TITLE:Adobe FrameMaker]"
$sTitle2 = "[CLASS:#32770;TITLE:f Catalog]"
$sText = ""


        WinWaitActive($sTitle, $sText)
        $i = 0
While $i <= 150
    Send("{ESC}" & "f" & "i" & "n")
        Sleep(50)
        ControlCommand($sTitle2, $sText, "ListBox1", "SelectString", "Link")
        Sleep(50)
        WinActivate($sTitle, $sText)
    $i = $i + 1
WEnd



Время: 16:36.

Время: 16:36.
© OSzone.net 2001-