Cannot Create Automation Object

Тема в разделе "Lotus - Программирование", создана пользователем motogarri, 1 июл 2016.

Метки:
  1. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Всем привет. Знаю, что ком-объекты зло, но сейчас нет выбора.
    Проблема такая:
    Нужно запускать агент RunOnServer, который используя "WScript.Shell" дёргает экзешник и получает от него ответ. Агент один раз отрабатывает успешно, а при повторном запуске, Cannot Create Automation Object на строке:
    Set WshShell = CreateObject("WScript.Shell")
    Минут через 20-30 снова может один раз отработать.

    При этом, агент по расписанию работает отлично, на винде сервера скрипт VBS тоже пашет.
    RunOnServer запускаю с полными правами.
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    месье знает толк в извращениях...
    может задачу обрисовать - что надо чтобы делалось (что делает это супер-пупер скрипт)
     
  3. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    не могу) Запускается экзешник через командную строку с параметрами. Потом результат забирается из того же cmd
    Set WshShell = CreateObject("WScript.Shell")
    Set WshExec = WshShell.Exec(comand)
    Set TextStream = WshExec.StdOut

    другого интерфейса общения с экзешником нет. Но и не в этом вопрос. Что мешает создавать ком объекты агентом RunOnServer? Это каcается любых объектов. К примеру этот код ведет себя точно так же:
    Set objSysInfo = CreateObject("WinNTSystemInfo") 'Cannot Create Automation Object
    Print "objSysInfo.UserName = " + objSysInfo.UserName
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    выгрузка агента происходит не моментально
    можно конечно попробовать агент из агента запускать (некая пускалка), но я бы, лично, вовсе ушел от такой формы общения с exe
    тем паче в агентах
    запускаем cmd /c (здесь уже рассказывал - как, чтобы длинные пути проходили), мониторим вывод (кот. перенаправляем в файл)
     
  5. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Изначально так и делали. Надеялись, через WScript Проще будет ...
     
  6. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    не хочется промежуточные файлы городить
     
  7. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    В итоге сделали джавой. Наверное так и правильно. Ни ком-объектов, ни промежуточных файлов. Запускается через cmd экзешник, получается результат.
    Код (Javascript):
         
            String[] command ={"cmd.exe", "/C", "C:\\Myapp.exe arguments"};
            ProcessBuilder builder = new ProcessBuilder(command);
            builder.redirectErrorStream(true);
            Process p = builder.start();
            BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));

            StringBuffer response = new StringBuffer();
            String inputLine;
            while ((inputLine = r.readLine()) != null) {
                response.append(inputLine);
            }
            String result = response.toString();
     
     
    garrick и lmike нравится это.
Загрузка...
Похожие Темы - Cannot Create Automation
  1. imendan
    Ответов:
    7
    Просмотров:
    1.546
  2. NickProstoNick
    Ответов:
    39
    Просмотров:
    11.569
  3. dimat
    Ответов:
    46
    Просмотров:
    3.687
  4. wowa
    Ответов:
    23
    Просмотров:
    1.606
  5. dzheyzhi
    Ответов:
    6
    Просмотров:
    2.008

Поделиться этой страницей