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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.04.2004, 20:07   #1  
slava09 is offline
slava09
Участник
Аватар для slava09
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Регистрация: 06.03.2003
Адрес: Украина, Киев
Внешнее приложение
Подскажите, плиз, как запустить внешнее приложение, так чтобы оно было модальным, т.е. нельзя было работать с Аксапта пока его не закроешь????
Старый 20.04.2004, 11:10   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Приделай куда-нибудь этот метод и счастье наступит
Параметры:

1. командная строка
2. сколько миллисекунд ждать завершения (-1 ждать вечно)
3. режим отображения окна (нормальное, максимизированое, свернутое).

PHP код:
static void shellExecuteWait(str commandLineint _waitTime = -1int cmdShow 4)
{
    
#WinAPI
    #DEFINE.STATUS_TIMEOUT(0x00000102)

    
Dll             kernel32            = new Dll("kernel32.dll");
    
DllFunction     createProcess       = new DllFunction(kernel32"CreateProcessA");
    
DllFunction     waitForSingleObject = new DllFunction(kernel32"WaitForSingleObject");
    
DllFunction     closeHandle         = new DllFunction(kernel32"CloseHandle");
    
DllFunction     terminateProcess    = new DllFunction(kernel32"TerminateProcess");
    
Binary          strartupInformation = new binary(68);
    
Binary          processInformation  = new binary(16);

    
int             hProcess;

    
createProcess.returns(ExtTypes:: DWORD);
    
createProcess.arg(ExtTypes:: DWORDExtTypes:: STRING,
                      
ExtTypes:: DWORDExtTypes:: DWORD,
                      
ExtTypes:: DWORDExtTypes:: DWORD,
                      
ExtTypes:: DWORDExtTypes:: DWORD,
                      
ExtTypes:: POINTERExtTypes:: POINTER);

    
waitForSingleObject.returns(ExtTypes:: DWORD);
    
waitForSingleObject.arg(ExtTypes:: DWORDExtTypes:: DWORD);

    
closeHandle.returns(ExtTypes:: DWORD);
    
closeHandle.arg(ExtTypes:: DWORD);

    
terminateProcess.returns(ExtTypes:: DWord);
    
terminateProcess.arg(ExtTypes:: DWordExtTypes:: DWord);

    
strartupInformation.dWord(44cmdShow);

    if (!
createProcess.call(0commandLine000000strartupInformationprocessInformation))
    {
        throw 
error(strfmt("Ошибка при запуске приложения \"%1\""commandLine));
    }

    
hProcess processInformation.dWord(0);

    if (
waitForSingleObject.call(hProcess_waitTime) == #STATUS_TIMEOUT)
    
{
        
terminateProcess.call(hProcess1);
        throw 
error(strfmt("Приложение \"%1\" закрыто, так как не завершилось за отведенное ему время"commandLine));
    }

    
closeHandle.call(hProcess);

За это сообщение автора поблагодарили: aidsua (1).
Старый 24.10.2009, 17:01   #3  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
В таком виде пользоваться методом нельзя. Он работать будет, но и "гадить" понемногу будет незакрытыми хендлами нитей. ПРАВИЛЬНЫЙ метод автор (DB) выложил в теме Как разархивировать zip архив?
ЗЫ: там правда типы надо привести к DWORD.
__________________
--- SHiSHok

Последний раз редактировалось SHiSHok; 24.10.2009 в 17:02. Причина: буковку поправил
Теги
shellexecute

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Несколько АОСов и одно приложение Михаил Петрович DAX: Администрирование 4 09.04.2009 13:06
Как сильно модифицировано ваше приложение Аксапты? (% обновленных партнерских объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% обновленных объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% новых объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:40
"Пустое" приложение AraraT® DAX: Программирование 3 07.01.2007 23:41

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

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

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