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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.09.2014, 16:08   #1  
kazpiez is offline
kazpiez
Участник
 
11 / 10 (1) +
Регистрация: 05.08.2013
Как запустить процесс на 64 сервере???
Всем доброго времени суток!
Есть задача "Загрузить список банков"... Суть в том что скачивается файл bnk.exe при его запуске распаковывается 3 текстовых файла... ну и т.д. Проблема заключается в том что не получается его запустить... Файл качается на 64х сервер... Поковырялся на форуме нашел вот такую функцию(WinApiServer::ShellExecuteWaitInfo):
PHP код:
static server str shellExecuteWaitInfo(str _commandLinestr _arguments ""int _waitTime = -1)
{
    
System.String                       outputInfo;
    
System.IO.StreamReader              streamReader;
    
System.Diagnostics.Process          process;
    
System.Diagnostics.ProcessStartInfo startInfo;
    
InteropPermission                   permission = new InteropPermission(InteropKind::ClrInterop);
    
System.Exception                    exception;
    
Boolean                             exited;

    
System.Text.Encoding                encoding;
    
System.Text.Encoding                encoding866;
    
System.Text.Encoding                encodingUTF;

    
System.Byte[]                       tmp;
    
str                                 ret,usr curuserId(),sss;
    

    ;
    
permission.assert();

    
encodingUTF System.Text.Encoding::get_Unicode();
    
encoding866 System.Text.Encoding::GetEncoding(866);


    
startInfo   = new System.Diagnostics.ProcessStartInfo();//(_commandLine);
    
process     = new System.Diagnostics.Process();

    if (
_arguments)
    {
        
startInfo.set_Arguments(_arguments);
    }

    try
    {
        
startInfo.set_UseShellExecute(false); // для отключения диалога безопасности доступа к сетевым файлам
        
startInfo.set_RedirectStandardOutput(true);
        
startInfo.set_FileName(_commandLine);
        
process.set_StartInfo(startInfo);

        
process.Start();

        
process.WaitForExit(_waitTime);

        
streamReader process.get_StandardOutput();

        
encoding streamReader.get_CurrentEncoding();

        
outputInfo streamReader.ReadToEnd();

        
exited process.get_HasExited();

        if (
exited == false)
        {
            
process.Kill();

            return 
"";
        }

        
tmp encoding.GetBytes(outputInfo);

        
tmp System.Text.Encoding::Convert(encoding866encodingUTFtmp);

        
ret encodingUTF.GetString(tmp);

        if (
ret)
            return 
ret;

        return 
"ok";
    }
    catch (
Exception::CLRError)
    {
        
exception CLRInterop::getLastException();

        while (
exception)
        {
            
error(exception.get_Message());

            
exception exception.get_InnerException();
        }

        return 
"";
    }

если вызывать данный метод вот так:
PHP код:
winapiserver::shellExecuteWaitInfo("C:\\\Program Files\\WinRAR\\WinRAR.exe"strFmt("e -y -o+ %1 %2",fn,folder)); 
то все нормально распаковывается...
но файл должен сам распаковываться при запуске!
если вызывать вот так:
PHP код:
winapiserver::shellExecuteWaitInfo(fn)); 
то файл не распаковывается... сообщение которое выдает метод:
PHP код:
Extracting from D:\bnk\bnk.exe //Причем это появляется в консоли при запуске файла в ручную... 

Program aborted 
т.е файл bnk.exe начинает выполнятся но так и не выполняется... Может кто сталкивался с такой ситуацией?

----
Старый 04.09.2014, 16:32   #2  
kazpiez is offline
kazpiez
Участник
 
11 / 10 (1) +
Регистрация: 05.08.2013
передаваемое значение _commandLine = D:\bnk\bnk.exe
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Installation of Microsoft Dynamics AX 2009 or 2012 client may fail on a Microsoft Windows 7 x64 (64-bit operating system) Blog bot DAX Blogs 0 20.09.2011 23:12
emeadaxsupport: Wrong data shown in the grid, if the table field is an Int 64 and the form control is an IntEdit instead of an int64edit. Blog bot DAX Blogs 3 22.07.2010 18:00
palleagermark: Create a 64-bit encoded string from an image in AX Blog bot DAX Blogs 0 22.01.2010 15:05
Как проще всего запустить JOB на сервере (в 3-Tier) ahtoh DAX: Программирование 3 01.06.2005 11:25
Прервать процесс, запущенный на сервере ZSV DAX: Программирование 6 04.03.2005 16:22

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

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

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