12.07.2011, 17:36 | #1 |
Участник
|
Как из X++ запустить клиента AX 2009 с минимизированным окном?
Есть ядро AX 2009 SP1 RU7, хочется научиться запускать из кода X++ клиента этой сборки ядра под текущим пользователем в текущей сессии с минимизированным окном, чтобы он не мелькал на экране. Запускаю через System.Diagnostics.Process с использованием System.Diagnostics.ProcessStartInfo. Что уже перепробовал:
Совсем скрывать окно клиента, скажем, запуская его в другой виндовой сессии, не хочется, потому что он запускается не просто так, а для работы - мало ли, отладчик вылезет на точке останова или сообщение о том, что он че-то там где-то куда-то не может. PS. Использовать Business Connector - не вариант: он кое-чего не умеет как раз из-за отсутствия "морды". Последний раз редактировалось gl00mie; 12.07.2011 в 17:54. |
|
12.07.2011, 20:36 | #2 |
Administrator
|
Немного не в тему - но запуск в отдельном Thread тоже не рассматривается (пример: Ошибка времени выполнения в ComExcelDocument_RU.findRange()) ? Из плюсов - лицензии не жрет и не мешает работать основному клиенту (а-ля пакетник).
Т.е. мой вопрос звучит так: А нельзя ли исходную задачу решить другим способом? Возможно что и нет, раз бизнес-коннектор не подходит. Но тем не менее.
__________________
Возможно сделать все. Вопрос времени |
|
12.07.2011, 20:40 | #3 |
Участник
|
А такой вариант
X++: WinApi::minimizeWindow(infolog.hWnd()); |
|
12.07.2011, 21:28 | #4 |
Участник
|
У меня несско АОСов; задача - с клиента, запущенного на одном АОСе, запустить клиента на другом АОСе, что-то там сделать и завершиться (но так, чтобы окно запускаемого клиента не мельтешило перед глазами, ибо бесит). Поэтому отдельный поток на том же самом АОСе не катит.
Это условно вариант прописывания чего-то в info.starupPost(), т.е. чтобы запускаемый клиент каким-то боком просек, что ему нужно "свернуться". Я хотел бы этого избежать, потому что сейчас запускаемый клиент довольствуется штатным классом разбора xml-файла с параметрами того, что надо делать, без каких-то лишних дописок... |
|
12.07.2011, 21:54 | #5 |
Участник
|
Попробуйте передать ключик для ax32.exe -minimize
|
|
12.07.2011, 23:37 | #6 |
Administrator
|
Я попробовал порыть в другом направлении - а можно ли запустить код, указав ему на каком АОСе нужно исполняться. С ходу ничего не нашел, однако - идея-то по сути уже реализована - в АХ 2009 пакетные задания могут исполняться на тех АОСах, которые указаны в настройках. MSDN молчит. Не знаю - может это конечно может и скрыто глубоко в ядре ... Я пока не нашел какого-то системного класса - который с ходу так умеет запускать код на различных АОСах
__________________
Возможно сделать все. Вопрос времени |
|
13.07.2011, 00:15 | #7 |
Участник
|
Там просто есть ассоциация пакетной группы и аоса в настройке. Движок пакетов с заднной периодичностью сканирует очередь своей пакетной группы и выполняет задания из нее. Никакой магии.
|
|
13.07.2011, 00:18 | #8 |
Участник
|
Можно отоправить сообщение вот сюда из запускающего процесса: http://msdn.microsoft.com/en-us/libr...dowhandle.aspx
|
|
13.07.2011, 00:36 | #9 |
Administrator
|
Цитата:
А ... имеется в виду - что каждый конкретный АОС сканирует эту табличку и в зависимости от пакетной группы берет или не берет задание на себя? Если так - то тогда да, я рыл в неправильном направлении
__________________
Возможно сделать все. Вопрос времени |
|
Теги |
ax2009 |
|
|