Автор Тема: Послать команду в окно программы  (Прочитано 2346 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lemonia [?]

  • Новичок
  • *
  • Сообщений: 78

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Послать команду в окно программы
« Ответ #30, Отправлен: Май 18, 2017, 13:53:22 »
Сначала установил другую версию, не помогло, горячие клавиши не работают. Затем попробовал «"Запретить стандартное действие для указанного сочетания клавиш"». Это не отключает стандартные клавиши. В более новой версии пробовал горячие клавиши Cntrl+o+i. В этой которая сейчас вроде не получается сделать из трёх кнопок комбинацию. Потом возможно ещё раз попробую.

Русское сообщество AutoIt

Re: Послать команду в окно программы
« Ответ #30 Отправлен: Май 18, 2017, 13:53:22 »

Оффлайн lemonia [?]

  • Новичок
  • *
  • Сообщений: 78

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Послать команду в окно программы
« Ответ #31, Отправлен: Июнь 19, 2017, 17:20:26 »
Обычно скрипт автоматического распознавания Finereaderом множества PDF нормально работает. Однако бывают такие файлы, когда не за что не посылается команда Cntrl+S. Происходит остановка (код строки 40). И приходится вручную жать на клавиатуре Cntrl+S.

Код: AutoIt [Выделить]
ControlSetText ( "Save", "", "Edit1", @WorkingDir&"\"&$file_name&"\"&$file_name ); сохраняем результаты распознавания в папку пакета


Код: AutoIt [Выделить]
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)

« Последнее редактирование: Июнь 19, 2017, 21:25:02 от lemonia »

Оффлайн lemonia [?]

  • Новичок
  • *
  • Сообщений: 78

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Послать команду в окно программы
« Ответ #32, Отправлен: Июнь 29, 2017, 17:33:10 »
Подсказали строку, которую надо добавить в начало Opt("SendKeyDelay", 700). Выяснилось при тесте на нескольких сбойных файлах, что это помогает решить проблему.

Русское сообщество AutoIt

Re: Послать команду в окно программы
« Ответ #32 Отправлен: Июнь 29, 2017, 17:33:10 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
5741 Просмотров
Последний ответ Апрель 22, 2010, 06:01:37
от doncarlleone
8 Ответов
9584 Просмотров
Последний ответ Апрель 10, 2011, 11:50:11
от madmasles
13 Ответов
5738 Просмотров
Последний ответ Апрель 16, 2011, 07:45:25
от Garrett
3 Ответов
2212 Просмотров
Последний ответ Октябрь 10, 2011, 22:31:59
от Zaramot
8 Ответов
2748 Просмотров
Последний ответ Декабрь 21, 2013, 03:22:56
от agikon
15 Ответов
2137 Просмотров
Последний ответ Май 20, 2015, 16:24:49
от InnI
4 Ответов
1993 Просмотров
Последний ответ Апрель 18, 2015, 19:42:55
от mhoch
12 Ответов
2310 Просмотров
Последний ответ Июль 28, 2015, 15:39:11
от Yashied
1 Ответов
704 Просмотров
Последний ответ Октябрь 12, 2015, 16:35:10
от ildar
0 Ответов
479 Просмотров
Последний ответ Июль 29, 2016, 12:06:59
от masheen