|
Получить текст модуля из сторонней программы | ☑ | ||
---|---|---|---|---|
0
qeos
27.03.18
✎
15:23
|
Собственно троли проходят мимо.
Задача: получить текст модуля (в дальнейшем текст формы) из сторонней программы. в частности это Embarcadero Delphi XE 10. В чем проблемма: обходя хендлы окон можно найти окно 1с в котором отображается текст модуля. И все. Дальше элементов не видать. А на форме по идее должны быть элементы панелей, кнопок, редактирования, но т.к. это не стандартные элементы windows form то хендлов элементов нет. собственно надо получить текстовое содержимое этого окна. как? Идеи: как бы есть несколько вариантов обхода: 1. отправить сочетания клавиш окну, чтобы выделить весь текст и скопировать его в буфер обмена, а потом достать из буфера. 2. как то (как?) пройтись по элементам формы и вытащить какимто (каким?) образом текст из поля редактирования 3. получить память 1с, какимто образом найти отображаемый в окне участок памяти с модулем. в общем как? |
|||
1
eenvo
27.03.18
✎
15:53
|
> троли
Пишется "тролли". > программы. в частности Заглавная буква. > проблемма Пишется "проблема". > собственно надо получить текстовое содержимое этого окна. как? Заглавные буквы. > какимто Пишется "каким-то". > в общем как? Заглавные буквы. Ну и прочие запятые. Что бы ты без нас делал, а? |
|||
2
qeos
27.03.18
✎
16:33
|
||||
3
qeos
27.03.18
✎
16:38
|
Не уж то и тут нет таких, кто в теме? Что-то я даже теряюсь, где еще можно спросить такие специфичные вопросы.
Вчера спросил на фриноде "how to get text of window from another applilcation?" на #windows ответили "just press right mouse button and select 'copy' command".. Kappa. А на #csharp пледложили использовать OCR компоненты.. |
|||
4
eenvo
27.03.18
✎
16:50
|
Кстати да. Можно еще для этого развернуть микросервис на докере и и устроить хакатон. Это будет так по 1с-ному...
|
|||
5
Buster007
27.03.18
✎
16:55
|
нажать программно принт скрин и сохранить картинку по определенному пути
|
|||
6
Ц_У
27.03.18
✎
17:02
|
(5) потом распознать ее в текст, изменить и вернуть назад
|
|||
7
eenvo
27.03.18
✎
17:03
|
(5) C использованием временного хранилища! Сколько повторять можно?
|
|||
8
eenvo
27.03.18
✎
17:03
|
(6) Про "вставить текст обратно" буде другая тема (:
|
|||
9
Локи-13
27.03.18
✎
17:07
|
Можно написать нейронную сеть, которая будет анализировать скриншот на предмет поиска текста.
|
|||
10
Кирпич
27.03.18
✎
17:10
|
(0) Копай в сторону
"3. получить память 1с, какимто образом найти отображаемый в окне участок памяти с модулем." Через недельку другую охладеешь к своей гениальной идее и проблема исчезнет сама собой. |
|||
11
Ц_У
27.03.18
✎
17:13
|
EDT в помощь
http://v8.1c.ru/overview/release_IDE_beta/ |
|||
12
qeos
27.03.18
✎
18:04
|
(11) про ЕДТ я в курсе, но хотелось бы другого
|
|||
13
qeos
27.03.18
✎
18:05
|
(10) примерно так и делаю всегда. но просто то что хочется сделать, постоянно возникает потребность.
|
|||
14
qeos
27.03.18
✎
18:06
|
(8) :))) зришь в корень
|
|||
15
Garykom
гуру
27.03.18
✎
18:22
|
(0) Спорим твоя задача решается намного проще?
|
|||
16
qeos
27.03.18
✎
18:45
|
(15) хм.. наоборот упростить себе жизнь хочу..
|
|||
17
Сияющий в темноте
27.03.18
✎
18:47
|
Получить текст модуля можно из окна конфигуратора,а в самой программе модуль используется в компиллированном виде и его текст получить нельзя,хотя,можно прочитать файл базы на диске и оттуда достать модуль
а нсли нужен текст на форме,то подключиться для отладки и перехватить функции gdi,например,ExtTextout,и все,что выводит программа,чеиез перехватчик отправится в файл |
|||
18
Ц_У
27.03.18
✎
18:57
|
(0) смысл в чем, ну забрал ты текст в свою программу и дальше то что?
|
|||
19
b_ru
27.03.18
✎
18:57
|
У 1С есть ключи командной строки, которые позволяют выгрузить все тексты модулей в обычные текстовые файлы. Пойдет? Или ты какой-то IntelliSense пытаешься написать и нужен оперативный доступ к несохраненному тексту модуля?
|
|||
20
Garykom
гуру
27.03.18
✎
19:01
|
(19) Для 2-го есть https://marketplace.visualstudio.com/items?itemName=xDrivenDevelopment.language-1c-bsl и можно допиливать ))
|
|||
21
qeos
28.03.18
✎
19:49
|
(19) да.. хотлосьбы прям в пофигураторе чтото делать..
|
|||
22
int32i
28.03.18
✎
21:43
|
//получить текст модуля//
Только Ctrl-А\Ctrl-C. Или идти на поклон к Орефкову (Снегопат), но вроде и у него с этим были проблемы. Наиболее оптимальный путь - это вызывать конфигуратор для выгрузки в файл и анализ файла, как ЕДТ делает. Удачи. |
|||
23
DrZombi
гуру
29.03.18
✎
06:35
|
(0) Вам нужен разработчик https://snegopat.ru/
У него поболее познаний |
|||
24
DrZombi
гуру
29.03.18
✎
06:39
|
(11) Мертворожденный проект, им бы в массы на халяву пустить, тогда бы разошлась сея приблуда.
Я вот даже кратким взшлядом на эту презинтацию, не уловил смысла покупать сей функционал :) |
|||
25
ildary
29.03.18
✎
07:27
|
(24) несмотря на то, что в настоящее время EDT непригоден для работы, вы же не будете отрицать, что конфигуратор устарел морально уже лет 10 назад и надо на замену ему что-то делать. Посмотрите сколько проектов родилось по допилке - snegopat, TurboConf, другие (не помню названий) - не от скуки же они появились?
|
|||
26
DrZombi
гуру
29.03.18
✎
07:43
|
(25) Я сейчас на УПП, работаю с отключенной функцией "Автоматическая Контекстная подсказка", не реально тормозит на больших модулях. :)
|
|||
27
DrZombi
гуру
29.03.18
✎
07:44
|
+ Я конечно не против новых доработок, но не так что бы программирование с новыми доработками превращалось в каторгу :)
|
|||
28
Тихий омут
29.03.18
✎
07:58
|
(26) "Не реально тормозит" - это ты так мягко, невесомо даже выразился:) Мои эмоции по этому поводу без цензуры непередаваемы:)
|
|||
29
qeos
29.03.18
✎
15:23
|
да понятно что EDT умеет.
я хотел кое-какую функциональность в конфигураторе. в EDT эта функциональность не нужна. она там практически есть. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |