|
|
|
|
#1 |
|
Участник
|
Цитата:
не понимаю, о чем Вы. Я малость затупил - проблема под Windows Server 2003, но от этого пока не легче. Под Windows XP все ровненько (клиент, запускаемый вторым, правда, достаточно долго висит на экране после нажатия ОК в алерте перед закрытием, секунд 5-7)
|
|
|
|
|
#2 |
|
Участник
|
Вот он, всеработающий код, для закрытия повторно запускаемого клиента AX при запуске (условие может каждый выбрать себе сам, в данном примере ограничение сделано для запуска второго экземпляра клиента на компьютере с одним и тем же именем один и тем же пользователем):
X++: void startupPost() { xSession session; Session curSession; int counter; str warning; HWND AxClient; ; //--- CRM start if (!appl.isConfigMode()) { //--- Prevent call to smmInit during installation of Axapta //--- If not, code in the method below is run that uses a table that has not yet been created for (counter = 1; counter <= xSession::maxSessionId(); counter++) { session = new xSession(counter, true); if (session) { if (session.sessionId() != sessionid()) { if ((curuserid() == session.userId()) && (winapi::getComputerName() == session.clientComputerName())) { warning = strfmt("Под пользователем %1 АХ уже запущена на компьютере %2!", session.userId(), session.clientComputerName()); Box::warning(warning, "Доступ ограничен"); AxClient = winapi::getActiveWindow(); winapi::sendMessage(AxClient,274,61536,''); // = SendMessage(WHND, WM_SYSCOMMAND, SC_CLOSE, 0); } } } } SmmInit::construct(); } //--- CRM end } Последний раз редактировалось mvsenin; 22.12.2011 в 05:35. |
|
|
|
|
#3 |
|
Участник
|
Одна остающаяся засада - если при старте AX выведет какой-то свой диалог, например, информацию о несоответствии часовых поясов, то закроется этот самый диалог, а не весь клиент
, он (клиент) останется пустым-сереньким, незакрывающимся по кресту
|
|
|
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|