![]() |
#9 |
Участник
|
Вот он, всеработающий код, для закрытия повторно запускаемого клиента 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. |
|
|
|