1 (изменено: DD, 2020-09-18 04:51:22)

Тема: AHK: Распознавание текста из командной строки через FineReader

Как скрывать окно, выскакивающее во время распознавания?


FineCmd := "C:\Program Files (x86)\ABBYY FineReader 15\FineCmd.exe"
chto := "E:\картинка_с_текстом.jpg"
kuda := A_Desktop "\" A_Now ".html"

Run, %comspec% /c ""%FineCmd%" "%chto%" /lang Mixed /out "%kuda%" /quit",,Hide, cPid

WinWait, ahk_id %cPid% ;ahk_exe FineReaderOCR.exe
WinActivate, ahk_id %cPid%
WinHide, ahk_id %cPid%

2

Re: AHK: Распознавание текста из командной строки через FineReader

DD

Более подробно можно написать суть  проблемы?
Если во время определённый действий появляется окно и его нужно скрыть, то нужно уточнить что это за окно (через тот же AhkSpy, например). Затем уже можно будет работать с этим окном.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: Распознавание текста из командной строки через FineReader

Из вопроса не понятно: скрывать окно CMD или окно FineReader?
Я поначалу прочитал "Распознавание текста из командной строки через FineReader" и подумал, что требуется считать текст из окна CMD.

4

Re: AHK: Распознавание текста из командной строки через FineReader

А зачем тут вообще cmd?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Распознавание текста из командной строки через FineReader

Имеется в виду, что у FR в пакете имеется экзешник (FineCmd.exe) для распознавания текста из ком. строки (то есть, не запуская основную программу). И видимо во время работы этого экзешника предусмотрен вывод небольшого окна (FineReaderOCR.exe), которое хотелось бы скрывать.

6 (изменено: DD, 2020-09-19 03:54:34)

Re: AHK: Распознавание текста из командной строки через FineReader

ypppu пишет:

и подумал, что требуется считать текст из окна CMD.

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

7

Re: AHK: Распознавание текста из командной строки через FineReader

Перефразирую как я понял ТЗ.

У FineReader в пакете имеется экзешник (FineCmd.exe) для распознавания текста из ком. строки (то есть, не запуская основную программу). Во время работы этого экзешника предусмотрен вывод небольшого окна (FineReaderOCR.exe), которое хотелось бы скрывать.

8

Re: AHK: Распознавание текста из командной строки через FineReader

stealzy
Знаю кое-какие команды, но применимо к этому окну они у меня не срабатывали. Но почему название загадочное? Как бы вы назвали тему?

9 (изменено: Malcev, 2020-09-19 11:59:39)

Re: AHK: Распознавание текста из командной строки через FineReader

Не встречал таких окон, которые нельзя было бы спрятать.
А через недокументированную CreateWindowInBand можно вообще перекрыть всё, кроме directx+fullscreen.
http://forum.script-coding.com/viewtopic.php?id=15348

10 (изменено: DD, 2020-09-19 13:34:23)

Re: AHK: Распознавание текста из командной строки через FineReader

Malcev
Это для Win10, или на семерке тоже пойдёт? Можно пример для скрытия окна? Я в том скрипте из темы прописывал WinHide и название окна, вместо "Autohotkey", но окно не скрывается.

11

Re: AHK: Распознавание текста из командной строки через FineReader

На семёрке не пойдет. Там тема не про скрывание окна, а про создание.

12

Re: AHK: Распознавание текста из командной строки через FineReader

DD,

Run, %comspec% /c ""%FineCmd%" "%chto%" /lang Mixed /out "%kuda%" /quit",,Hide, cPid

Цитата из справки по CMD (cmd.exe /?)

Если указаны ключи /C или /K, то остальная часть командной строки после
такого ключа обрабатывается как командная строка, а обработка символов
кавычек (") ведется по следующим правилам:

    1.  Если выполняются все перечисленные ниже условия, то символы
        кавычек в командной строке сохраняются:

        - ключ /S отсутствует
        - есть ровно два символа кавычек
        - между ними нет других специальных символов, как то: &<>()@^|
        - между ними имеются один или несколько пробелов
        - строка, заключенная в кавычки, является именем исполнимого
          файла.

    2.  В противном случае, проверяется первый символ, и если он является
        символом кавычек, то он удаляется, также удаляется последний
        символ кавычек в командной строке, а весь текст после этого
        последнего символа кавычек сохраняется.

Возможно опция Hide не срабатывает по этой причине и решение лежит в экранировании лишних символов кавычек, либо каким-то образом избежать их при построении команды.

+ DD

13

Re: AHK: Распознавание текста из командной строки через FineReader

Чем вызвано применение

%comspec% /c

, без него не пробовали?

14 (изменено: DD, 2020-09-19 23:59:30)

Re: AHK: Распознавание текста из командной строки через FineReader

Пробовал. Так скрывает, но окно мелькает:

WinWait, ahk_class #32770 ahk_exe FineReaderOCR.exe
WinActivate, ahk_class #32770 ahk_exe FineReaderOCR.exe
WinHide, ahk_class #32770 ahk_exe FineReaderOCR.exe

15

Re: AHK: Распознавание текста из командной строки через FineReader

Вы же не первый год с автохотки знакомы, а вопросы как у новичка...
1) Зачем активировать перед тем как прятать?
2) Есть команда setwindelay.
3) Если мельтешение раздражает, то создавайте окно через CreateWindowInBand и вставляйте туда копию экрана.

+ DD

16

Re: AHK: Распознавание текста из командной строки через FineReader

Не первый год, но много ж тонкостей существует).