ADN Club > ObjectARX
Не срабатывает SendCommand
Дмитрий:
Здравствуйте!
Формирую команду на экспорт в ПДФ. Если ставлю "\n" в конце команды (стрелкой показано) - команда выполняется, но выдаётся предупреждение в трее(правда если по нему щёлкнуть - пишет что ошибок нет), и файл не формируется. Если \n не ставить, а в командной строке самому нажать Enter - всё работает без предупреждений и файл формируется. Подскажите в чём дело, вторую неделю мучаюсь( Заранее спасибо.
--- Код - C++ [Выбрать] --- /*Теперь будем сохранять в PDF а потом в JPEG(сразу в JPEG сохраняет очень плохо)*/ pApp->Documents->Open(_bstr_t(lpszFileName)); pApp->ActiveDocument->SendCommand(_bstr_t("PROXYNOTICE 0\n")); // call the command pApp->ActiveDocument->SendCommand(_bstr_t("FILEDIA 0\n")); pApp->ActiveDocument->SendCommand(_bstr_t("BACKGROUNDPLOT 0\n")); wchar_t acad_command[MAX_PATH]; wcscpy(acad_command , _T("-ЭКСПОРТ pdf Тек Нет ")); wcsncat(acad_command , lpszFileName , wcslen(lpszFileName) - 3); wcscat(acad_command ,_T("pdf")); wcscat(acad_command ,_T("\n")); //<-------------------------------------------------------- pApp->ActiveDocument->SendCommand(_bstr_t(acad_command)); // pApp->ActiveDocument->SendCommand("\x10\x13"); pApp->ActiveDocument->Close();
Александр Ривилис:
1) Какое предупреждение? Нужен скрин чтобы понять о чем идет речь.
2) Попробуй заменить "\n" на " " (пробел)
3) Команды и опции используй английские с подчеркиванием
4) Имя файла должно быть в двойных кавычках и замени "\\" на "/"
5) Меняй системные переменные не при помощи pApp->ActiveDocument->SendCommand, а при помощи pApp->ActiveDocument->SetVariable
Дмитрий:
Это когда я не добавляю в конце \n, устанавливаю курсор в командную строку и нажимаю Enter, при этом выходные файлы формируются.
А в этом случае добавляю \n, команда проходит автоматически, но появляется это предупреждение и результирующего файла нет.
Причем в "подробностях о публикации/печати" во втором случае никаких данных нет.
Переменные выставляются, проверял, имя файла тоже верно задано, т.к. в первом случае всё срабатывает, а имя там тоже самое.
Дмитрий:
Вот нашёл нечто подобное на VBA
--- Код: --- DOC.SetVariable "FILEDIA", 0
DOC.SetVariable "BACKGROUNDPLOT", 0
DOC.SendCommand "-PUBLISH" & vbCr & dsd_dwf
SendKeys "{ENTER}", True
DOC.SendCommand "-PUBLISH" & vbCr & dsd_pdf
SendKeys "{ENTER}", True
--- Конец кода ---
Я так понимаю мне нужно сделать:
--- Код: ---SendKeys "{ENTER}", True
--- Конец кода ---
Александр Ривилис:
--- Цитата: Дмитрий от 30-07-2014, 11:49:36 ---Я так понимаю мне нужно сделать:
Код:
SendKeys "{ENTER}", True
--- Конец цитаты ---
Попробуй. Во всяком случае это будет полная эмуляция того, что ты делаешь вручную.
Навигация
Перейти к полной версии