Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Send("^s") не срабатывает каждый раз, когда надо

Ответить
Настройки темы
Send("^s") не срабатывает каждый раз, когда надо

Новый участник


Сообщения: 31
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: donbaton
Дата: 21-06-2017
помогите советом, что ещё можно попробовать сделать.
Вот это при обработке одних файлов работает, а с другими нужно вручную жать Cntrl+S. Уже Send("^s") совал после каждой строки и по несколько раз дублировал. Также и Sleep тоже вставлял дополнительно в разные места и время ожидания увеличивал. Операционная система Windows XP. Версия AutoIt: 3.3.12.0.

Код: Выделить весь код
WinWaitActive("ABBYY")
 Sleep(1000);
 Send("^s")
 WinWait("Save")
 Sleep(500);
Полный код скрипта автоматического распознавания Finereaderом множества PDF (этот отрывок примерно в конце):
Код: Выделить весь код
Const $FR_dir = "E:\Program Files\ABBYY FineReader 8.0 Professional Edition\"
Run($FR_dir&"FineReader.exe")
AutoItSetOption ( "WinTitleMatchMode" , 2 )
$search = FileFindFirstFile("*.pdf")
If $search = -1 Then
 MsgBox(0, "Error", "No pdf files")
 Exit
EndIf
While 1
 $file = FileFindNextFile($search)
 If @error Then ExitLoop
 $file_name= StringTrimRight($file, 4); имя файла без расширения ".pdf"
WinWaitActive("ABBYY")
SendKeepActive("ABBYY")
Send("^n", 0); новый пакет
Send("!f") ;
Send("v")
 WinWaitActive("Save")
 Sleep(500)
 ControlSetText ( "Save", "", "Edit1", @WorkingDir&"\"&$file_name ); создаем папку пакета
 Sleep(500)
 Send("{ENTER}")
 Sleep(500)
 Send("^o")
 Sleep(500)
 ControlSetText ( "Open", "", "Edit1", @WorkingDir&"\"&$file ); открытие и распознавание pdf файла
 Send("{ENTER}")
 WinWaitClose("Adding")
 Sleep(500)
 WinWaitActive("ABBYY")
 Sleep(500)
 Send("^+R")
 WinWaitClose("Reading")
 Sleep(500);
 WinWaitActive("ABBYY")
 Sleep(1000);
 Send("^s")
 WinWait("Save")
 Sleep(500);
 ControlSetText ( "Save", "", "Edit1", @WorkingDir&"\"&$file_name&"\"&$file_name ); сохраняем результаты распознавания в папку пакета
 Send("{ENTER}")
 Sleep(500);
 WinWaitClose("Saving")
 Send("!f")
 Send("c") ;Закрываем пакет
WEnd

FileClose($search)

Отправлено: 14:35, 21-06-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


donbaton, возможностей FineOCR.exe (или FineCmd.exe в более новых версиях) Вам недостаточно?

Отправлено: 14:54, 21-06-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 31
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 17:19, 21-06-2017 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Откройте Справку по ABBYY FineReader 8.0 Professional Edition в разделе Automating a Task и почитайте. Прочтите также содержимое файла FineOCR.txt.

Отправлено: 17:55, 21-06-2017 | #4


Новый участник


Сообщения: 31
Благодарности: 1

Профиль | Отправить PM | Цитировать


А как настроить FineOCR.exe, чтобы при пакетном распознавании множества PDF и сохранении в этом же формате текст был под изображением? Не могли бы Вы привести пример командной строки, как скормить множество PDF с цифровыми именами в имени файла, чтобы всё это автоматически распознавалось и сохранялось в нужном виде? А то в английском не силён, не могу сообразить сам. Языки при распознавании нужны: русский+английский+латинский. Формат сохранения: высокое качество (для печати) + цветные Jpeg (фото). Иногда нужно бывает среднее качество сжатия (Medium (for screen)). Настройки, как с галочкой "Keep original image size" и с "Enable tagged PDF".
Font: Use standart fonеs c посславленной галочкой ″Embed fonts″.

Последний раз редактировалось donbaton, 21-06-2017 в 19:39.


Отправлено: 19:30, 21-06-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата donbaton:
А как настроить FineOCR.exe, чтобы при пакетном распознавании множества PDF и сохранении в этом же формате текст был под изображением? »
Вы про что? Это ж PDF, а не DjView. Поясните.

Отправлено: 20:10, 21-06-2017 | #6


Новый участник


Сообщения: 31
Благодарности: 1

Профиль | Отправить PM | Цитировать


На странице инструкции к скрипту, который здесь привёл, на первом скриншоте эта настройка выставлена в выпадающем списке «Text under the page image».

Отправлено: 20:17, 21-06-2017 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


donbaton, я делать не буду, но могу подсказать общий путь — как.

Первым делом нужно задать искомые настройки для pdf в параметрах FineReader — те, которые Вы выше перечислили, а затем сохранить их (на первой вкладке) в виде файла параметров .fbt.

Ваше приложение на AutoIt, або ещё на чём должно делать следующее:
  • проверить, запущено ли оно с параметром, и если нет, то…
  • переназначить себя в качестве глагола по умолчанию для pdf-файлов, сохранив прежние настройки;
  • перебрать в указанном исходном каталоге файлы, отбирая среди них *.pdf;
  • для каждого найденного файла исполнить команду с ожиданием:
  • Код: Выделить весь код
    "%ProgramFiles%\ABBYY FineReader 8.0 Professional Edition\FineOCR.exe" "Путь\Имя очередного найденного файла.pdf" /read /lang Russian English Latin /send Acrobat /OptionsFile "Путь\Имя файла ранее сохранённых параметров.fbt"
  • таким образом другой экземпляр Вашего приложения будет запущен, и ему будет передано в качестве параметра имя временного файла .pdf с результатом сканирования и распознавания (FineOCR.exe не поддерживает сохранение результирующего файла в указанном месте, видимо, для того, чтобы не составлять конкуренции для более дорогой Corporate Edition);
  • этот другой экземпляр Вашего приложения также проверяет, запущено ли оно с параметром, и, поскольку — да, то он должен просто взять переданный путь ко временному файлу, скопировать этот файл в целевой каталог и завершить свою работу;
  • прежний экземпляр продолжит повторять перебор файлов до их исчерпания;
  • в конце работы нужно вернуть вобрат прежние сохранённые настройки глагола по умолчанию для pdf-файлов.
Есть вариант без назначения себя приложением по умолчанию для pdf, и это даже правильнее будет, но тут понадобится больше работы и кода — проверять, какое назначено приложение, отслеживать его запуск, затем смотреть его командную строку на предмет определения имени временного файла, копировать файл, затем закрывать приложение.

Примерно так.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:15, 24-06-2017 | #8


Новый участник


Сообщения: 31
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сейчас заработало, если добавить в начало рабочего скрипта строку
Код: Выделить весь код
Opt("SendKeyDelay", 700)
Также по вашей рекомендации человек написал код, который у него не заработал. Вот что он написал:
Код: Выделить весь код
Попробовал консольный вариант FineOCR, у меня не пошло, проблемы с активацией ФР. 123.fbt - файл настроек, сохраненный в папке с ФР.
Const $FR_dir = "c:\Program Files (x86)\ABBYY FineReader 8.0 Professional Edition\"

$search = FileFindFirstFile("*.pdf")
If $search = -1 Then
MsgBox(0, "Error", "No pdf files")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop


RunWait($FR_dir&"FineOCR.exe "&$file&" /read /lang Russian English Latin /send Acrobat /OptionsFile "& $FR_dir&"123.fbt")
Sleep(1000)

WEnd

FileClose($search)
[/code]

Отправлено: 17:28, 29-06-2017 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Send("^s") не срабатывает каждый раз, когда надо

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VPN - Номер PPP интерфейса меняется каждый раз когда я подключаюсь eXtremer Сетевые технологии 4 03-10-2013 10:28
Разное - [решено] Не срабатывает значок "Свернуть все окна" Solitude Microsoft Windows 2000/XP 4 11-01-2013 01:18
Разное - Не срабатывает "Востановление системы со скрытого раздела" shumak Microsoft Windows Vista 3 07-11-2008 03:42
[решено] Командная строка: не срабатывает команда "Del" Sanchos Microsoft Windows 2000/XP 11 13-06-2006 12:39
Когда нажимаю букву"M" или "L","U"...Проблема.. ekodrive Microsoft Windows 2000/XP 7 27-01-2006 15:13




 
Переход