Показать сообщение отдельно
Старый 12.07.2011, 17:36   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (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.