Как прочитать IME поле из 1С:Предприятие 8 (тонкий клиент)?
От: alexvreg Россия  
Дата: 08.11.12 07:58
Оценка:
Есть приложение 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

08.11.12 19:46: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
winapi
Re: Как прочитать IME поле из 1С:Предприятие 8 (тонкий клиент)?
От: kero Россия  
Дата: 09.11.12 07:03
Оценка:
Здравствуйте, alexvreg, Вы писали:

A>Есть приложение 1С:Предприятие 8 в режиме тонкого клиента. В окне есть элемент управления "дерево".

A>Нужно с помощью WinApi (или каким-то другим образом) прочитать ветку (строка) в этом дереве.Есть handle этого элемента управления.
A>Первым делом попытался прочитать обычными WinApi — не получилось,потому что это не обычное окно, а "IME" (Input Method Editor), который используется для ввода не латинских символов (иероглифы и т.д)
A>C помощью Spy++ поймал сообщения, которые ловит этот элемент управления.События типа:
A>WM_IME_SETCONTEXT fset:0 (LONG)iShow:C000000F
A>WM_IME_NOTIFY dwCommand:00000001 dwData:00000000
A>WM_IME_NOTIFY
A>WM_IME_SETCONTEXT
A>Подскажите каким образом можно подобраться к тексту элемента управления. Я знаю про все возможности связаться с 1С:Предприятие штатными методами,но в данном случае они подходят. Нужно мучить именно окон через handle

Ничего не знаю про "1С:Предприятие 8 в режиме тонкого клиента", но что там за "элемент управления "дерево""? Если стандартное системное SysTreeView32 — то получение текста см. MSDN -> TreeView (потребуется внедрение в процесс).
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[2]: Как прочитать IME поле из 1С:Предприятие 8 (тонкий клиент)?
От: alexvreg Россия  
Дата: 09.11.12 07:06
Оценка:
K>Ничего не знаю про "1С:Предприятие 8 в режиме тонкого клиента", но что там за "элемент управления "дерево""? Если стандартное системное SysTreeView32 — то получение текста см. MSDN -> TreeView (потребуется внедрение в процесс).

В том то и дело, что это не обычное дерево, а элемент IME — "http://msdn.microsoft.com/en-us/library/dd318641(VS.85).aspx", и из него просто так прочитать не получается.
Если бы было обычное дерево, проблемы бы не было.
Re[3]: Как прочитать IME поле из 1С:Предприятие 8 (тонкий клиент)?
От: kero Россия  
Дата: 10.11.12 03:08
Оценка:
Здравствуйте, alexvreg, Вы писали:

A>В том то и дело, что это не обычное дерево, а элемент IME — "http://msdn.microsoft.com/en-us/library/dd318641(VS.85).aspx", и из него просто так прочитать не получается.

A>Если бы было обычное дерево, проблемы бы не было.

Если не в лом — не приложите ли скриншот, с текстами в дереве ?
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.