|   |   | 
| 
 | Как прочитать 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-сервис     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |