Re: Как передать фокус в форму, и послать "ENTER"?

...
ThisDrawing.SendCommand "N" & vbCr  ThisDrawing.SendCommand "N" & vbCr
ThisDrawing.SendCommand "Y" & vbCr
'Здесь появляется окно с заголовком "Create PDF File" и программа стопорится. Если руками нажимаю ENTERфайл сохраняется и управление переходит AppActivate "Create PDF File" и ошибка, runtime 5 "invalide procedure call or argument"
AppActivate "Create PDF File"
SendKeys "{ENTER}", True
как быть?

Re: Как передать фокус в форму, и послать "ENTER"?

Если код останавливается, то
1 возможно, надо поискать свойство, подавляющее вызов диалогового окна. В VBA For Excel Application.DisplayAlerts позволяет подавлять сообщения приложения.
2 если 1 не получтися, то сделать на VBA, видимо, не удастся, код-то не работает.

Re: Как передать фокус в форму, и послать "ENTER"?

3 думать, думать, думать...

Re: Как передать фокус в форму, и послать "ENTER"?

 ThisDrawing.SendCommand "-plot" & vbCrLf & "n" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "n" & vbCrLf & vbCrLf

что вывела история коммандной строки
----
Command:
-PLOT Detailed plot configuration? [Yes/No] <No>: n
Enter a layout name or [?] <Model>:
Enter a page setup name <>:
Enter an output device name or [?] <\\Komputer8\Lexmark Z600 Series>:
----
результат вывел на печать Model

Re: Как передать фокус в форму, и послать "ENTER"?

Зачем вообще из VBA вызывать SendCommand для печати?
Есть объекты AcadPlot и AcadPlotConfiguration, есть методы печати. Там никакого диалога и не будет. См. acadauto.chm

Re: Как передать фокус в форму, и послать "ENTER"?

ВОПРОС
Иногда при использовании ThisDrawing.SendCommand "команда"
Вкомандную строку акада передается совем не то.
Почуму?

Re: Как передать фокус в форму, и послать "ENTER"?

> ShaggyDoc
Дело в том, что в данном случае печать идет в файл PDF. И программа автоматически спрашивает с каким именем сохранить файл.
pif32 хочет программно распечатать (точнее, конвертировать) в файл с именем по умолчанию.
Вообще-то PDF очень удобен при передаче чертежей. И проблема, на мой взгляд, актуальна.
Возможно, надо весь код перенести хотя бы в VB. Тогда можно будет посылать Enter в активное окно.

Re: Как передать фокус в форму, и послать "ENTER"?

ВОПРОС
Иногда при использовании ThisDrawing.SendCommand "команда"
Вкомандную строку акада передается совем не то.
Почуму?

Re: Как передать фокус в форму, и послать "ENTER"?

> brigval
ThisDrawing.Plot.PlotToFile(plotFileName)
Метод PlotToFile не спрашивает, ему надо передать имя файла. А на какой плоттер (в том числе PDF) выводить, что и как - задается в объекте PlotConfiguration.
SendCommand из под VBA имеет смысл использовать, если надо сделать что-то, невозможное через ActiveX.
Да и в этом случае лучше послать строку в виде LISP-выражения. Ее легко предварительно отладить, в ней могут быть проверки условий и прочее. Зачем мучиться с прямой отправкой символов? Всегда будет "передается совем не то"

Re: Как передать фокус в форму, и послать "ENTER"?

pif32 пишет:

ВОПРОС
Иногда при использовании ThisDrawing.SendCommand "команда"
Вкомандную строку акада передается совем не то.

Например?..

Re: Как передать фокус в форму, и послать "ENTER"?

« ВОПРОС
Иногда при использовании ThisDrawing.SendCommand "команда"
Вкомандную строку акада передается совем не то.
»
Например?..
Это моя глюка....