Показаны различия между двумя версиями страницы.
— |
axapta:какзапуститьприложение [2018/04/13 22:43] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | Раздел: | ||
+ | ---- | ||
+ | Как запустить внешнее приложение из Axapta: | ||
+ | |||
+ | Варианты | ||
+ | *Использовать [[Класс/ | ||
+ | *Если надо подождать завершения запущенного приложения, | ||
+ | *через ActiveX [[http:// | ||
+ | *воспользоваться советом из [[AxForum: | ||
+ | |||
+ | Параметры: | ||
+ | 1. командная строка | ||
+ | 2. сколько миллисекунд ждать завершения (-1 ждать вечно) | ||
+ | 3. режим отображения окна (нормальное, | ||
+ | <code XPP> | ||
+ | static void shellExecuteWait(str commandLine, | ||
+ | { | ||
+ | # | ||
+ | # | ||
+ | |||
+ | Dll | ||
+ | DllFunction | ||
+ | DllFunction | ||
+ | DllFunction | ||
+ | DllFunction | ||
+ | Binary | ||
+ | Binary | ||
+ | |||
+ | int | ||
+ | |||
+ | createProcess.returns(ExtTypes:: | ||
+ | createProcess.arg(ExtTypes:: | ||
+ | ExtTypes:: DWORD, ExtTypes:: DWORD, | ||
+ | ExtTypes:: DWORD, ExtTypes:: DWORD, | ||
+ | ExtTypes:: DWORD, ExtTypes:: DWORD, | ||
+ | ExtTypes:: POINTER, ExtTypes:: POINTER); | ||
+ | |||
+ | waitForSingleObject.returns(ExtTypes:: | ||
+ | waitForSingleObject.arg(ExtTypes:: | ||
+ | |||
+ | closeHandle.returns(ExtTypes:: | ||
+ | closeHandle.arg(ExtTypes:: | ||
+ | |||
+ | terminateProcess.returns(ExtTypes:: | ||
+ | terminateProcess.arg(ExtTypes:: | ||
+ | |||
+ | strartupInformation.dWord(44, | ||
+ | |||
+ | if (!createProcess.call(0, | ||
+ | { | ||
+ | throw error(strfmt(" | ||
+ | } | ||
+ | |||
+ | hProcess = processInformation.dWord(0); | ||
+ | |||
+ | if (waitForSingleObject.call(hProcess, | ||
+ | { | ||
+ | terminateProcess.call(hProcess, | ||
+ | throw error(strfmt(" | ||
+ | } | ||
+ | |||
+ | closeHandle.call(hProcess); | ||
+ | } | ||
+ | </ | ||