AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.07.2011, 17:36   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
? Как из X++ запустить клиента AX 2009 с минимизированным окном?
Есть ядро AX 2009 SP1 RU7, хочется научиться запускать из кода X++ клиента этой сборки ядра под текущим пользователем в текущей сессии с минимизированным окном, чтобы он не мелькал на экране. Запускаю через System.Diagnostics.Process с использованием System.Diagnostics.ProcessStartInfo. Что уже перепробовал:
  • параметр командной строки -minimize (в ядре клиента есть такой, но, может, он к окнам не имеет отношения);
  • processStartInfo.set_CreateNoWindow( true );
  • processStartInfo.set_WindowStyle( System.Diagnostics.ProcessWindowStyle::Minimized ) вместе с set_UseShellExecute( false );
  • processStartInfo.set_WindowStyle( System.Diagnostics.ProcessWindowStyle::Hidden ) вместе с set_UseShellExecute( false );
  • WinAPI::shellExecute() c _show == #SW_HIDE/#SW_SHOWMINIMIZED/#SW_SHOWNOACTIVATE/#SW_SHOWMINNOACTIVE;
Все равно, зараза, всплывает, мелькает, фокус ввода перехватывает и дико этим раздражает. Может, есть еще какие варианты "внешнего воздействия"?.. Ловить момент запуска процесса клиента, искать его окошко и прятать принудительно не хочется, равно как и не хочется дописывать какую-то логику в info.startupPost(), чтобы клиент при определенных условиях сам минимизировал свое окно. Или клиент Аксапты совсем в этом плане "невменяем", и помогут только такие средства?..
Совсем скрывать окно клиента, скажем, запуская его в другой виндовой сессии, не хочется, потому что он запускается не просто так, а для работы - мало ли, отладчик вылезет на точке останова или сообщение о том, что он че-то там где-то куда-то не может.

PS. Использовать Business Connector - не вариант: он кое-чего не умеет как раз из-за отсутствия "морды".

Последний раз редактировалось gl00mie; 12.07.2011 в 17:54.
Старый 12.07.2011, 20:36   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Немного не в тему - но запуск в отдельном Thread тоже не рассматривается (пример: Ошибка времени выполнения в ComExcelDocument_RU.findRange()) ? Из плюсов - лицензии не жрет и не мешает работать основному клиенту (а-ля пакетник).
Т.е. мой вопрос звучит так: А нельзя ли исходную задачу решить другим способом? Возможно что и нет, раз бизнес-коннектор не подходит. Но тем не менее.
__________________
Возможно сделать все. Вопрос времени
Старый 12.07.2011, 20:40   #3  
Daiver is offline
Daiver
Участник
Самостоятельные клиенты AX
 
177 / 44 (2) +++
Регистрация: 19.07.2005
Адрес: Москва
А такой вариант
X++:
WinApi::minimizeWindow(infolog.hWnd());
пробовали?
Старый 12.07.2011, 21:28   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
запуск в отдельном Thread тоже не рассматривается?
У меня несско АОСов; задача - с клиента, запущенного на одном АОСе, запустить клиента на другом АОСе, что-то там сделать и завершиться (но так, чтобы окно запускаемого клиента не мельтешило перед глазами, ибо бесит). Поэтому отдельный поток на том же самом АОСе не катит.
Цитата:
Сообщение от Daiver Посмотреть сообщение
А такой вариант
X++:
WinApi::minimizeWindow(infolog.hWnd());
пробовали?
Это условно вариант прописывания чего-то в info.starupPost(), т.е. чтобы запускаемый клиент каким-то боком просек, что ему нужно "свернуться". Я хотел бы этого избежать, потому что сейчас запускаемый клиент довольствуется штатным классом разбора xml-файла с параметрами того, что надо делать, без каких-то лишних дописок...
Старый 12.07.2011, 21:54   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Попробуйте передать ключик для ax32.exe -minimize
Старый 12.07.2011, 23:37   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
задача - с клиента, запущенного на одном АОСе, запустить клиента на другом АОСе, что-то там сделать и завершиться
Я попробовал порыть в другом направлении - а можно ли запустить код, указав ему на каком АОСе нужно исполняться. С ходу ничего не нашел, однако - идея-то по сути уже реализована - в АХ 2009 пакетные задания могут исполняться на тех АОСах, которые указаны в настройках. MSDN молчит. Не знаю - может это конечно может и скрыто глубоко в ядре ... Я пока не нашел какого-то системного класса - который с ходу так умеет запускать код на различных АОСах
__________________
Возможно сделать все. Вопрос времени
Старый 13.07.2011, 00:15   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
С ходу ничего не нашел, однако - идея-то по сути уже реализована - в АХ 2009 пакетные задания могут исполняться на тех АОСах, которые указаны в настройках.
Там просто есть ассоциация пакетной группы и аоса в настройке. Движок пакетов с заднной периодичностью сканирует очередь своей пакетной группы и выполняет задания из нее. Никакой магии.
Старый 13.07.2011, 00:18   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Это условно вариант прописывания чего-то в info.starupPost()
Можно отоправить сообщение вот сюда из запускающего процесса: http://msdn.microsoft.com/en-us/libr...dowhandle.aspx
Старый 13.07.2011, 00:36   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
Там просто есть ассоциация пакетной группы и аоса в настройке. Движок пакетов с заднной периодичностью сканирует очередь своей пакетной группы и выполняет задания из нее. Никакой магии.
Правильно. А как он выполняет задания на конкретном АОСе?

А ... имеется в виду - что каждый конкретный АОС сканирует эту табличку и в зависимости от пакетной группы берет или не берет задание на себя? Если так - то тогда да, я рыл в неправильном направлении
__________________
Возможно сделать все. Вопрос времени
Теги
ax2009

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
semanticax: Dynamics AX 2009 Installation - Application Blog bot DAX Blogs 0 22.12.2010 08:11
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:18.