|
Как прочитать IME поле из окна 1С:Предприятие 8 (тонкий клиент)? | ☑ | ||
---|---|---|---|---|
0
Oftan_Idy
13.11.12
✎
12:34
|
Есть приложение 1С:Предприятие 8 в режиме тонкого клиента. В окне есть элемент управления "дерево".
Нужно с помощью WinApi (или каким-то другим образом) прочитать ветку (строка) в этом дереве.Есть handle этого элемента управления. Первым делом попытался прочитать обычными WinApi — не получилось,потому что это не обычное окно, а "IME" (Input Method Editor), который используется для ввода не латинских символов (иероглифы и т.д) C помощью Spy++ поймал сообщения, которые ловит этот элемент управления.События типа: WM_IME_SETCONTEXT fset:0 (LONG)iShow:C000000F WM_IME_NOTIFY dwCommand:00000001 dwData:00000000 WM_IME_NOTIFY WM_IME_SETCONTEXT Подскажите каким образом можно подобраться к тексту элемента управления. Я знаю про все возможности связаться с 1С:Предприятие штатными методами,но в данном случае они подходят. Нужно мучить именно окно через handle |
|||
1
Oftan_Idy
13.11.12
✎
12:36
|
Вроде "H A D G E H O G s" шарит в WinApi, может подскажешь?
|
|||
2
H A D G E H O G s
13.11.12
✎
12:37
|
Элементы управления 1С не содержат текст.
|
|||
3
H A D G E H O G s
13.11.12
✎
12:39
|
Это типовые элементы Винды, но служат только для приема событий от клавы/мыша. Отрисовка перехватывается и выполняется 1С-кой.
Это насколько я понял. Это было в 8.1, толстом клиенте. Это было для СлужебныхСообщений и элементов форм. |
|||
4
Oftan_Idy
13.11.12
✎
12:43
|
Да элемент текст напрямую не содержит. Но хочется как-то добраться до него.
Если бы это был просто элемент винды, то через WinApi можно было легко прочитать текст, послать сообщение на получение текста. |
|||
5
H A D G E H O G s
13.11.12
✎
12:44
|
(4) Внимательно прочитай, что я написал выше.
|
|||
6
Oftan_Idy
13.11.12
✎
12:44
|
Неужели остается только получать hDc, делать сриншот элемента и распознавать картинку? Это уже совсем хардкор.
|
|||
7
H A D G E H O G s
13.11.12
✎
12:46
|
(6) Вообще - то, что ты хочешь - скорее всего - незаконно.
|
|||
8
Oftan_Idy
13.11.12
✎
13:27
|
(7) Почему? Я же не меняю ничего в сторонней программе. Хочу прочитать с помощью стандартный WinApi функций. Получается винда сама дает читать и управлять другими окнами, полчать nandle,отправлять сообщения, вещать хуки - разве это все незаконно?
Хочешь сказать что это троян? |
|||
9
H A D G E H O G s
13.11.12
✎
13:37
|
(8) Ммммм, ну вот вешать хуки - возможно.
А вот создать удаленный поток в процессе 1С - уже скорее всего нельзя. |
|||
10
Oftan_Idy
13.11.12
✎
13:44
|
Я могу послать в элемент управления сообщения нажатий, мыши и т.д,но это не поможет потому что мне нужно не повлиять на элемент (что-бы там что-то произошло) а прочитать его состояние.
|
|||
11
H A D G E H O G s
13.11.12
✎
14:08
|
(10) Никак.
|
|||
12
Oftan_Idy
13.11.12
✎
14:44
|
Печалька. Прийдется распозновать картинку.
Зачем 1С понадобилось так извращаться, чем не подошли стандартные виндовс элементы управления с расширением класса. Взяли бы класс элеменет, наследовали бы его, и переписали ыункции отрисовки и реагирования, но оставим базовые функционал чтобы WinApi могли с ними взимодействовать. |
|||
13
H A D G E H O G s
13.11.12
✎
14:54
|
(12) Говорят, были проблемы с разрешением экрана, но это - на уровне слухов.
|
|||
14
Gepard
13.11.12
✎
15:30
|
(0) а зачем? (может быть есть другой путь)
|
|||
15
Oftan_Idy
13.11.12
✎
15:45
|
(14) К сожалению другого пути нет. Законнектиться к базе нельзя никак, только тонким клиентом
|
|||
16
H A D G E H O G s
13.11.12
✎
15:45
|
(15) Законнектся к Тонкому!
|
|||
17
Oftan_Idy
13.11.12
✎
16:26
|
(16) Неправильно написал. Можно подключиться пользователем к тонкому клиенту, но нельзя законектиться к тонкому Com соединением (нет прав на коннект)
|
|||
18
Gepard
13.11.12
✎
17:44
|
(17) а добавить прав?
|
|||
19
Gepard
13.11.12
✎
17:44
|
(18) + или web-сервис
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |