v7: Получение списка дочерних окон 1С #397261


#0 by Андрюха
Вызываю через DynamicWrapper, не могу сообразить как из 1С передать туда вторым параметром указатель на функцию :(
#1 by Rie
А разве DynWrapper предусматривает возможность параметров-функций?
#2 by Андрюха
А уж функция там или переменная или еще какая хрень должна разбираться dspsdftvfz API функция
#3 by smaharbA
нужны окна только или процессы и модули ?
#4 by smaharbA
+ и рекурсивно надо ?
#5 by Андрюха
Нужно найти только дочернее окно в 1С по заголовку
#6 by smaharbA
тогда ненадо тебе енумератор, но на сколько помню сперва тебе нужно будет mdi окно найти (главное) а потом уж в нем все остальные
#7 by smaharbA
что то типа
#8 by Андрюха
Это я нахожу:
#9 by smaharbA
ну тут поиск от десктопа, а тебе сперва по классу надо найти мди, и его первым в обход
#10 by smaharbA
там функция получения заголовка еще, ну это можно потом
#11 by Sadovnikov
Формэкс: СписокВсехОткрытыхОкон СИНТАКСИС: СписокВсехОткрытыхОкон НАЗНАЧЕНИЕ: возвращает список значений со всеми открытыми формами
#12 by Кириллка
+10 ::GetWindowText(hWnd, pBuf, sizeof(pBuf))
#13 by smaharbA
Такую песню испортил. (с) :)
#14 by Sadovnikov
Щас еще больше испорчу :) Искать лучше не по заголовку. А завести в модуле переменную и определять ее наличие.
#15 by smaharbA
а это уже и штатно делается вообще список и все, все окна всегда под рукой )))
#16 by Sadovnikov
"вообще список и все, все окна всегда под рукой " - поясни?
#17 by smaharbA
СписокОкон.ДобавитьЗначение(Контекст); ... ну там с проверкой конечно и не в прямую в приоткрытии, а через функцию
#18 by Sadovnikov
Зачем так напрягаться и перелопачивать всю конфу? Если есть СписокВсехОткрытыхОкон.
#19 by smaharbA
+ текст на форме ИмяФормы
#20 by smaharbA
пусть оба будут, это во мне антогонизъм )))
#21 by Sadovnikov
А... Понял :)
#22 by Андрюха
У меня всё получилось, за исключением того, что не могу получить заголовок окна по хендлу:
#23 by Андрюха
FormEx_ИконкаПредупреждения - затесалось, надо выкинуть
#24 by Андрюха
Отлично, а как активировать дочернее окно по контексту?
#25 by Sadovnikov
ОткрытьФорму?
#26 by Андрюха
Предположим, что форма уже открыта, нужно ее переместить на фронт.
#27 by Sadovnikov
Что за форма? Документ? Элемент справочника? Обработка?
#28 by Андрюха
Обработка
#29 by Sadovnikov
ОткрытьФорму
#30 by Андрюха
У меня не получится, т.к. я с помощью ВК RBrowser открываю в дочернем окне 1С файл Excel. Теперь нужно при поворном его открытии активизировать (по заголовку) уже открытое окно.
#31 by Андрюха
Всё что мне нужно, это найти по заголовку дочернее окно и сделать его активным.
#32 by Андрюха
Окно открытое RBrowser в СписокВсехОткрытыхОкон не попадает
#33 by Sadovnikov
КонтФормы.Активизировать("");
#34 by Андрюха
-> :(((
#35 by Rie
О, кстати, та же проблема! Но только не уверен, что решаемо "в лоб" через dll. Я пробовал писать для этой цели собственную ВК, но обломился: именно из-под _1С_ не работает, при запуске того же кода из MS Word, а также тестовых приложений на Delphi окно "всплывало". Из 1С - тоже "всплывало", но тут же поверх него ложилось окно 1С.
#36 by Андрюха
Я стал открывать через RBrowser - всё отлично, только при повторном открытии Excel матюкается, вот и хочу искать дочернее окно по заголовку и активизировать его. В проблема бы решилась, но не могу получить заголовок открытого дочернего окна, GetWindowText и GetWindowTextW возрращают пустую строку.
#37 by Rie
У меня - Excel запускался через OLE. Далее находил окно по заголовку и поднимал наверх. После этого оно на доли секунды было видно, потом поверх него наползала 1С.
#38 by Андрюха
Такая же фигня была, попробуй через RBrowser - симатично получается, за искл повторного открытия
#39 by Sadovnikov
Тыды упс... Ни разу не работал с RBrowser.
#40 by Андрюха
Может быть тогда добавить в 1С++ возможность открытия в качестве дочернего окна IE ну и в нем файла кончено же?
#41 by Rie
Спасибо,RBrowser попробую. Но хотелось бы понять, как именно это делается. То, что я вижу сейчас - там пусть free, но "голая" dll. А исходников, случаем, не водится?
#42 by smaharbA
Так пойдет ?
#43 by smaharbA
ИЕ или веббраузер можно открыть как активикс или тупо сделать дочерним тойже рамке текста вот тебе и будет окно на форме, правдо тут надо будет отслеживать события вмпаинт
#44 by Андрюха
В качестве заголовка нужного окна постоянно возвращается "Вид", а не фактический заголовок. Вот.
#45 by smaharbA
это даст окна системы сейчас дам перечисление окон в главном окне 1с
#46 by smaharbA
Был занят воткой ))) вот гдето так, упрощять только надо, приблизить к адинэс
#47 by H A D G E H O G s
Нда. ** тихо уполз из ветки, поджав хвост.
#48 by Андрюха
Благодаря уважаемому smaharbA родился следующий код получения таблицы всех дочерних окон, с указанием хендла, заголовка и класса: С удовольствием добавляю его в базу знаний.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С